有符号数和无符号数之间的转换
(2010-09-02 19:47:00)
标签:
it |
分类: 计算机学习 |
main( )
{
答案是 a=-32768。
首先,unsigned是表示一个变量(或常数)是无符号类型。signed表示有符号。
unsigned
无符号数的数值范围0-65535,有符号数的数值范围在-32768-
+32767之间.所以有符号运算比无符号运算耗资源.
‚ 无符号数32768的二进制形式为1000 0000 0000 0000.
ƒ 在转换为有符号数时,由于最高位表示符号数,因此可以理解其为一个负数。负数采用2的补码(two's
complement)表示。“要把内存中以补码形式存放的二进制码转换成十进制的负数步骤如下:
„ 按照上面的步骤:各位先取反,0111 1111 1111 1111 ;再转为十进制数,32767;再在所得的数前加负号,-32767;再减1,即为-32767-1=-32768.。
unsigned
main()
{ int
答案是b=65534。
其具体步骤为:
十进制形式就是无符号数 65534
这就是我理解后的复述.欢迎大家一起讨论

加载中…