(1)short转为unsigned int
在C语言标准中,先改变数据的大小,然后再从有符号转化为武符号。举个例子:
short sx = -12345;
unsigned uy = sx;
printf("sx = %d \n",sx);
printf("uy = %u:\t",uy);
show_bytes((byte_pointer)&uy,sizeof(unsigned));
-12345是十六进制表示为0xcfc7。当转化为无符号整形时,首先扩充数据长度为0xffffcfc7。然后再转化为无符号数。注意博主使用的计算机是小端系统(低字节数据存储在低地址)。
(2)逻辑运算符&&和||与位运算符&和|的区别
如果第一个逻辑运算参数求值后就能确定表达式的值,那么第二个参数的值将不再需要运算。比如表达式if(p && *p++)是不会产生任何问题的。