二进制 原码 反码 补码 小总结

真的是出了校园就把知识还给老师了!!!  所以需要抽空来把一些知识捡起来~~

机器数
数字在计算机中的表现形式(二进制)叫做机器数,这个数有正负之分,在计算机中用一个数的二进制的最高位(符号位)用来表示它的正负,其中0表示正数,1表示负数。

eg: 正数7,8位的二进制数来表示,是00000111,而负数-7,则用10000111表示,这里的00000111和10000111是机器数

因为第一位是符号位,所以8位二进制数的取值范围就是:[11111111 ~ 01111111]  即 [-127 ~ 127]

真数

机器数对应的真实的值就是真数(二进制数换算成十进制得到的数字),对最高位(符号位)后面的二进制数转换成10进制,并根据最高位来确定这个数的正负。

eg: 二进制数快速转换为十进制数,有个小窍门,11111111,从右到左依次代表 1,2,4,8,16,32,64,128   把对应位置上为1的数字相加起来就是 十进制的,比如 00001011就是1+2+8=11

原码

原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小

反码

正数的补码反码是其原码本身,负数的反码是原码符号位保持不变,其余位取反。

eg:  正数1的原码是00000001,它的反码是是其本身00000001, -1的原码是10000001,其反码是11111110

补码

正数的补码是其原码本身,负数的补码是在其反码的基础上+1。

eg:  正数1的原码是00000001,它的补码是其本身00000001, -1的补码是其反码11111110  + 1   =   11111111

原文地址:https://www.cnblogs.com/xuchao0506/p/14989853.html