在计算机中各种数值的表示形式是采用二进制计数值的机器数,数的符号用0和1表示,小数点则隐含不占位。
二进制数有无符号和有符号之分,无符号表示正数。二进制中没有符号位,但是对带符号数来说,二进制的最高位用0和1表示正负数,其余为则为值。二进制数根据小数点位置分为纯整数和纯小数。
带符号的二进制的运算采用原码、反码、补码等不同编码方式计算。(有专业的公式表示法,这边不展示,只记录怎么求)
- 原码,最高位0为正,1为负数。例子
- 反码,正数反码与原码一样,负数则需要把除了最高位符号位之外的数求反。例子
- 补码,正数补码与原码和反码相同,负数的补码是反码加一,若是原码转补码则符号位不变,从最低位开始数到的第一个1不变,之后开始的所有位取反。例子
- 移码,常用于浮点数中的介码,二进制机器码长N,那么偏移量为2^(N-1),在这种情况下,求移码只需要把补码的符号位取反就行,例子