计算机中数的表示方法
计算机中使用补码来表示正负数,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
正数
正数的补码:与原码相同。
例如,+9的补码是00001001。
负数
负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
左移和右移运算符
左移
左移运算符将导致 shift-expression 中的位向左移动 additive-expression 所指定的位数。 因移位运算而空出的位上将用零填充。 左移是逻辑移动(从末端移掉的位将被舍弃,包括符号位)
右移
右移运算符将导致 shift-expression 中的位模式向右移动 additive-expression 所指定的位数。 对于无符号数字,因移位运算而空出的位上将用零填充。 对于有符号数字,符号位用于填充空出的位。 也就是说,如果数字为正,则使用 0;如果数字为负,则使用 1。