在C中,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 03:05:00
在C中,

在C中,
在C中,

在C中,
8bit(位)是一个Byte(字节).
2Byte(字节)是一个Word(字),16bit.
2Word(字)是一个DW(双字),32bit.
---------------------------------
二进制的每一个都有自己的权值.对于一个字节来讲,从左至右分别为128、64、32、16、8、4、2、1(发现规律了吧——乘2)
因为19=16+2+1,所以从右至左,第0位为1,第1位为1,第4位为1.
就得到了10011b
所以,如果用8位表示19当然就是00010011b
用16位表示就是0000000000010011b
用32位表示就是00000000000000000000000000010011b
--------------------------------------------------
至于你说的补码的问题,是因为在计算机中,为了存贮负数(要与正数和0分开,不能重码)而做的人为规定.
总之,你记住,计算机里存贮数都是用补码的形式.正数和0的补码永远都是自己,负数的补码就是它的绝对值按位取反,加1.
[0]补=00000000b
[1]补=00000001b
[2]补=00000010b
[3]补=00000011b
----------------
[-0]补=00000000b
[-1]补=11111111b(注:-1的绝对值为1,按位取反后为11111110b,加1就得到了-1的补码:11111111b)
[-2]补=11111110b
[-3]补=11111101b

最后一个1保留,前面的取反。
例:原1101010010
补0010101110
也可以理解成先取反,然后加1。