70,037
社区成员
发帖
与我相关
我的任务
分享//0xFF 0x0A,存于char数组中,现在要将其转为10进制,怎么写?
//反过来,十进制负数转换成2字节的十六进制,怎么写?
#include <stdio.h>
#include <memory.h>
char a[2];
char b[4];
short int *psi,si;
int *pi,i;
int main() {
a[0]='\xFF';
a[1]='\x0A';
b[0]=a[1];
b[1]=a[0];
if (b[1]&0x80) {
b[2]='\xFF';
b[3]='\xFF';
} else {
b[2]=0;
b[3]=0;
}
psi=(short int *)b;
printf("%hd\n",*psi);
memcpy(&si,b,2);
printf("%hd\n",si);
pi=(int *)b;
printf("%d\n",*pi);
memcpy(&i,b,4);
printf("%d\n",i);
a[1]=0;
a[0]=0;
si=-246;
a[1]=((char *)&si)[0];
a[0]=((char *)&si)[1];
printf("0x%02x,0x%02x\n",(unsigned char)a[0],(unsigned char)a[1]);
a[1]=0;
a[0]=0;
i=-246;
a[1]=((char *)&i)[0];
a[0]=((char *)&i)[1];
printf("0x%02x,0x%02x\n",(unsigned char)a[0],(unsigned char)a[1]);
return 0;
}
//-246
//-246
//-246
//-246
//0xff,0x0a
//0xff,0x0a
short a = 0xff0a;
printf("%d\n", a);
a = -100;
printf("%x\n", a);
怎么没人鸟啊啊啊