定点整数
长度相同的无符号和有符号数转化
无符号数与有符号数:不改变数据内容,改变解释方式。
C 中的int short 等类型都是用补码的形式存储的。
short x=-4321;
内存中存储为X:1110 1111 0001 1111 计算机真值显示为:-4321
unsigned short y=(unsigned short) x;
内存中存储为y:1110 1111 0001 1111 计算机真值显示为:61215
长数据强转为短数据(强制转化)
长整数变短整数:高位截断,保留低位。
int short a=165537,b=-34991; //int型占用4个字节
short c=(short)a,d=(short)b;//short型占用2个字节
短整数变长整数:符号扩展。
short x=14321;//x:1110 1111 0001 11110xeflf
int m=x;// 有符号再内存保存为补码,因此有符号短整->长整,需在前面加1111 1111 。 x:1110 1111 0001 1111 真值0xeflf
unsigned short n= (unsigned short) x; //n: 1110 1111 0001 1111 0xef1f 真值61215
unsigned int p=n;//p: 0000 0000 0000 00001110 1111 0001 1111 无符号转化前面直接填0
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/268394.html