怎样把C语言数组中存放的四个十六进制数合并成一个十六进制数,并转换成十进制?
2018-02-13 11:38
267 查看
原网址:http://bbs.csdn.net/topics/391029805
利用的就是计算机存储的特性,需要注意大小端char sDec[4] = {0x05,0xc5,0xb3,0xea};
低字节序的情况下. 并且 int 占用 32bit.
char sDec[4] = {0x05,0xc5,0xb3,0xea};
int val = 0;
char *pBuf = (char*)&val;
pBuf[0] = sDec[3];
pBuf[1] = sDec[2];
pBuf[2] = sDec[1];
pBuf[3] = sDec[0];
这时val==0x05c5b3ea;
如果是高字节序那就更简单了.
char sDec[4] = {0x05,0xc5,0xb3,0xea};
int val = *(int*)sDesc;
利用的就是计算机存储的特性,需要注意大小端char sDec[4] = {0x05,0xc5,0xb3,0xea};
低字节序的情况下. 并且 int 占用 32bit.
char sDec[4] = {0x05,0xc5,0xb3,0xea};
int val = 0;
char *pBuf = (char*)&val;
pBuf[0] = sDec[3];
pBuf[1] = sDec[2];
pBuf[2] = sDec[1];
pBuf[3] = sDec[0];
这时val==0x05c5b3ea;
如果是高字节序那就更简单了.
char sDec[4] = {0x05,0xc5,0xb3,0xea};
int val = *(int*)sDesc;
typdef union { int addr; char part[4]; } ip; ip ip1; ip1.part[0] = 0x01; ip1.part[1] = 0x02; ip1.part[2] = 0x03; ip1.part[3] = 0x04; printf("%d\n", ip.addr); 注意大小端。
相关文章推荐
- OC语言——把四个十进制三位数存放到一个数组中,然后按升序排序
- 将一个数组中的值按逆序重新存放(简易版)C语言实现
- 用c语言写一个函数把十进制转换成十六进制(转)
- NSArray作业1:放四个十进制三位数到一个数组中,然后按从小到大排序后组成一个新的数组
- C语言 实现约瑟夫环 (有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数)
- 十六进制数转换为十进制-c语言
- C语言将多个字符串合并为一个字符串例如:数组[a,bbb,ccc]->字符串"a,bbb,ccc"
- C语言,将一个数组中的值按逆序重新存放,例如,原来的顺序是8,6,5,4,1。要求改为1,4,5,6,8
- 编写一个程序,用valueOf()方法将long型数据12345678转换为字符串。再用toString()方法将十进制int型数据100转换为十六进制数表示的字符串。
- 将一个文件转换成C语言数组
- [c语言]将两个整形升序数组合并为一个升序数组
- C语言 ,有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用拆半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”
- C语言 数组char a[4] 保存了一个数据,怎么转换为unsigned int呢 ?
- C语言中的二进制、八进制、十进制、十六进制他们之间的转换方式什么怎样的?
- 使用数组,编写一个任意进制正整数转换为十进制的转换工具。
- 输入一个十进制正整数,将其转换成二进制、八进制、十六进制数输出
- C语言 写一个函数,将一维数组中的元素逆序存放
- 将一个十六进制的数组转换成一个十六进制数
- C语言学习,将一个数组中的值按逆序重新存放,例如原来顺序为8,6,5,4,1 。要求改为1, 45,8
- 编写程序,将一个十进制正整数转换成十六进制数