c语言,16位里32768的原码是多少?

c语言,16位里32768的原码是多少?如题。。。要解释
2024-11-23 12:56:43
推荐回答(2个)
回答1:

C语言里面不存在原码表示这种码制,只有无符号数和带符号数的补码表示。
这里面,实际上应该说清楚要表示的是+32768,还是-32768的。
如果是+32768:
如果是无符号数,无符号数32768=2^15用16位二进制数表示为1000 0000 0000 0000。

如果是带符号数,16位补码表示的范围是-32768到32767,是不可能表示32768的。但32位补码就可以表示32768了。
如果是-32768:
如果是无符号数,当然不可以表示负数了。

如果是带符号数,16位补码表示的范围是-32768到32767,刚好就能表示-32768,二进制代码为1000 0000 0000 0000(和上面给的是一样的)。32位补码表示-32768就是在上面16位的前面再加上16个1,也就是 1111 1111 1111 1111 1000 0000 0000 0000。

回答2:

2^16 = 32768(10) = 1000000000000000 (2)