首页 > TAG信息列表 > 0X

数据转换处理,拼接

1、8位,16位,32位数据转换 8位转16位 将2个8位数据high、low合成一个16位数据data_u16: data_u16 = (high<<8) | low;   16位转8位 将一个16位数据data_u16拆分成2个8位数据high、low: high = (data_u16 >> 8) & 0xff; //高8位 low = data_u16 & 0xff; //低8位 8位转32位将4个

021 指针思考

  /* 目录: 一 C原理 二 汇编原理 */ 一 C原理 void change(int** p2) { printf("p2 = 0x%x, *p2 = 0x%x\n", p2, *p2); printf("*p2 = 0x%x, *8p2 = %d\n", *p2, **p2); } int main() { int i = 3; printf("&i = 0x%x, i = %d

数组和指针

首先看一维数组的定义和使用 int array[5] = {1, 2, 3, 4, 5}; array是具有5个整型元素的一维数组,5个元素连续存放在以数组名array为起始的内存空间中。 用数组名访问: 访问数组array中的元素,可以直接用数组名访问,例如array[0]代表数组中的第一个元素,array[3]代表数组中的第4个元

十进制,八进制,十六进制

       八进制 前边加0 十六进制 前边加0x

C语言内存4区

个人笔记,多出借鉴他人 什么是代码区、常量区、静态区(全局区)、堆区、栈区? 如下图,是自己总结的内存分区的示意图。一般内存主要分为:代码区、常量区、静态区(全局区)、堆区、栈区这几个区域。  代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。 常量区:存放常量(程序在运行的

DGUS组态软件中位变量图标怎么用

位变量图标显示功能是把一个数据变量的每个位(bit)的 0/1 状态对应 8 种不同显示方案中的两种,用 ICON 图 标(或图标动画)来对应显示。多用于开关状态显示,比如风机的运转(动画)、停止(静止图标)。背景滤除强 度可以设置。 在 DGUS 开发软件中,点击显示控键_位变量图标显示按钮。接着用鼠标

快速幂

快速幂 示例 \(x^{20}\) \(\begin{align}20=&(10100)_2\\=&0*2^0+0*2^1+1*2^2+0*2^3+1*2^4\\=&0+0+4+0+16\end{align}\) \(x^{20}=x^0x^0x^4x^0x^{16}\) 每前进一位,x就要平方一次 代码实现 //基础版,用处不大(既然需要快速幂了int大概是不够的) //可以把 函数、x、result 改为long

JLX256128G-929-PL使用心得

一、点阵显示数据如何写入的解释 该lcd出厂时设定左上角为零点,并且把该整个屏幕设定为列(column)和页(page)的概念,列即是每一竖行(每个竖行横着的宽度都是一个像素点),页就是每一横行(每个横行竖着的宽度是8个像素点),所以如图所示,每条红色横线是一页。       该lcd的写入分为两个函数tr

输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果

1 #include <stdio.h> 2 int main(){ 3 int a,b,sum; 4 scanf("0x%x 0%o",&a,&b); 5 sum=a+b; 6 printf("%d",sum); 7 } 十六进制Hexadecimal一般以0x开头,例如0xFF。八进制Octal,一般以0开头,例如07。 scanf 0x%x:十六进制数的输入 0%o:八进制数的输入 1 #incl

C程序设计语言(第二版):练习2-3

题目: 编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。 自我解答: 编程思路: 首先函数定义为 int htoi(const char s[]),输入参数用const加以声明,防止在函数内部对其改动;其次返回值为int型,当

XORMD5加密

#coding=utf-8#md5jiamiimport hashlibhash_md5=hashlib.md5()a=input('message')print('message:',a)data=a.encode('utf-8',errors='ignore')hash_md5.update(data)md5_str=hash_md5.hexdigest()print('md5:',md5_str) #

XOR加密

coding=utf-8 md5算法 import hashlib h_md5 = hashlib.md5() x = input("输入需要加密的数据:") print( "Text:",x) data = x.encode('utf-8', errors='ignore') h_md5.update(data) md5_str = h_md5.hexdigest() print("MD5:",md5_s

4.PE文件之扩展PE头(IMAGE_OPTIONAL_HEADER)

可选/扩展PE头IMAGE_OPTIONAL_HEADER,它有着比标准PE头(IMAGE_FILE_HEADER)更多的内容. IMAGE_OPTIONAL_HEADER 结构及成员含义如下: //大小: 32bit(0xE0) 64bit(0xF0) #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 typedef struct _IMAGE_OPTIONAL_HEADER { WORD

C#发送字符串转字节含空格与0x需删去

主要作用:清除发送字符串转字节中的空格和16进制前缀0x, 字节转换按两位字符转换为一个字节,多余一位按一位字符转换一个字节    //清除空格和16进制前缀发送 String sendstr;// = new String [textBox1.Text.Length] sendstr = textBox1.Text; //这里采用su

很多朋友“字节序“和“bit序“分不清~(转载)

转载自:很多朋友"字节序"和"bit序"分不清~ 很多朋友"字节序"和"bit序"分不清~ 嵌入式情报局  昨天 以下文章来源于最后一个bug ,作者bug菌 1、剖析字节序       1)对于字节序其实很多小伙伴应该都是非常熟悉了,平时大家也都叫它"大小端",不过也有一部分小伙伴可能只是简单的知

比较地址

#include<stdio.h> #include<Windows.h> __declspec(naked) DWORD getKernel32() { __asm { mov eax,fs:[30h] mov eax,[eax+0ch] mov eax,[eax+14h] mov eax,[eax] mov eax,[eax] mov eax,[eax+10h]

应用层打印PC指针LR指针解决段错误总结【转】

转自:https://blog.csdn.net/sdsszk/article/details/109765180?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCom

C语言函数指针

#include "stdio.h" void (*tprint_p)(void); void tprint(void) { printf("hello world\r\n"); } void main(void) { tprint_p = tprint; tprint_p(); (*tprint_p)(); printf("tprint_p: 0x%x\r\n", (int)tprint_

如何定义一个自带数据区的结构体:三种数据结构体的比较

先看如下三个结构体的定义 这三个结构体的前三个成员都相同,前两个成员只是为了充个数,从而让我们定义的struct看上去真的像个结构体,一个是char类型,一个是int类型。最后一个也是int类型,iDataLen用于记录结构体自带数据的长度,pData指向的就是我们“认为”的数据区。 // 结构体1 typed

ror13hash

shellcode中常用的ror13hash算法,常见hash: def ror13(target): # return ((target << 0x13) & 0xfff80000) | ((target >> 0xd) & 0x07ffff) return ((target << 0x13) & 0xffffffff) | ((target >> 0xd) & 0x07ffff) def calc(s):

大端模式与小端模式理解

字节序 字节序指多字节数据在计算机内存储或者网络上传输时各字节的顺序。(来源:百度百科) 为了方便,逻辑上将字节序列里左边的字节称为高字节,右边的字节称为低字节,从左到右,由高到低,这样符合数学上的思维习惯,左边是高位,右边是地位。 大端模式与小端模式 由于每个字节在内存中都是有地

数据类型笔记

  0b开头 二进制 0开头 八进制 0x开头 十六进制 1字节(byte)=8位(bit)  

qt十进制十六进制字符串转整形数

// 此函数的作用是:“13”转为13,“0x0a”转为10 qint32 MainWindow::str2qint32(QString str) { qint32 num; bool ok; if(str.contains("0x")) // 如果这个字符串以0x开头,说明这是一个十六进制数,得按十六进制方式转 { num = str.toInt(&ok,10);

批量生成IPv6 subnet地址

def get_ip(count='10', start='2001:2:3:4:5:6:7:8'): starts = start.split(':') A = int(starts[0], 16) # int('a',16) 将字符串'a'进行16进制转换 base 存在时,视 x 为 base 类型数字,并将其转换为 10 进制数字。 # A2 = int('2001

SAE J1939协议学习笔记

引用百度百科: SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它由“卡车与大型客车电气与电子委员会”(Track & Bus Electrical & Electronics Committee)下属的“卡车与大型客车控制和通讯网络附属委员会”(Tra