计算机存储数据是以补码形式存储的。
一般来说,有符号数值使用补码表示,无符号的数值使用原码来表示,因为正数原码=补码,其实也是补码。
无符号数值只有正数。所以比如一个16位元可以储存的最大正数是2的16次方也就是65536。而有符号数,因为要兼容负数的可能性,就要牺牲一个位元来做符号表明。所以一个有符号数的最大正数就是2的(16-1次方)再减掉1,也就是32767了,而最大的负数也就是-32767了。
有符号数转化为无符号数:当表达式中存在有符号数和无符号数类型时,所有的操作都自动转换为无符号类型。可见无符号数的运算优先级高于有符号数。
直接将二进制补码转化为十进制。
无符号数转化为有符号数:
ps:强制类型转换:一般都是高优先级向低优先级转换,因为低优先级会自动隐式转换。
如果觉得《无符号数转化为有符号数》对你有帮助,请点赞、收藏,并留下你的观点哦!