c, 类型自动转换
code
#include<iostream>
int main()
{
unsigned int a = 65537;
unsigned short b;
b = a;
printf("ushort:%d, uint:%d \n", sizeof(unsigned short), sizeof(unsigned int));
std::cout << a << b << std::endl;
return 0;
}
输出
ushort:2, uint:4
655371
解释:
- unsigned short占2个字节,16bit,unsigned int占4字节,32bit
- 65537的二进制为
10000000000000001
,转成unsigned short时,值保留低位的16bit,就是0000000000000001
,然后其转为整数就是1。