c语言中 怎么将一组16进制数加入一个数组

2024年11月29日 13:48
有5个网友回答
网友(1):

例:

#include

#include

char sDec[4] = {0x05,0xc5,0xb3,0xea};

//把 0x05,0xc5,0xb3,0xea 组合成一个十六进制数 0x05c5b3ea ,

//并且把 0x05c5b3ea  转换成十进制数。

unsigned int i,v;

int main() {

v=0;

for (i=0;i<4;i++) v|=((unsigned int)sDec[3-i]&0xFFu)<<(i*8);

printf("0x%x,%u\n",v,v);

return 0;

}

//0x5c5b3ea,96842730

扩展资料

十进制字符串转换为十进制数

char *str = "123";

int n = atoi(str);

printf("%d\n", n);

//输出:123

网友(2):

可以在16进制数前加"0x"然后输入数组。

如要在数组char a[5]中输入FA,FB,FC,FD,FE,FF五个十六进制数,可以如下处理:

char a[5] = {0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF};

由于两位16进制长度为8bit,正好可以容纳一个两位16进制数;对于其他类型的数组,可如法炮制,只需留意数据的范围。

网友(3):

0xXX 就是16进制数。
#include
main()
{
char a[10]={0XFA,0XFB,0XFC,0XFD,0XFE,0XFF};
int i;
for (i=0;i<10;i++) printf("%2X ",0xff & a[i]);
return 0;
}

网友(4):

CHAR A[ ]="\xFA\xFB\xFC\xFD\xFE\xFF";

网友(5):

char类型就是8位的int型,可以直接直接复制
char A[10] = { 0XFA, 0XFB, 0XFC, 0XFD, 0XFE, 0XFF};