介绍
二进制数可以分为有符号数和无符号数,有符号数,又可以分为原码、反码、补码。
什么是有符号呢?
就是 识别正和负数的,在首尾代表 0 为正 1为负。无符号就是相反啦。
原码、反码、补码
正数的原码、反码、补码都是一样,没有可讲的。
负数
负数的原码,最高位是1,反码是除了最高位,其余的与原码取反,补码是反码加1。
举例:
十进制数 | 原码 | 反码 | 补码 |
---|---|---|---|
1 | 0000 0001 | 0000 0001 | 0000 0001 |
-1 | 1000 0001 | 1111 1110 | 1111 1111 |
二进制算法
主要说明二进制的加、减、乘、除的运算
加法:逢二进一。
0+0=0,0+1=1,1+0=1,1+1=10
减法:向高位借一当二。
1-1=0,1-0=1,0-0=0,0-1=1
乘法:同时为“1”时结果才为“1”
0×0=0,0×1=0,1×0=0,1×1=1
除法:跟十进制数的除法类似,只不过结果只有0、1。
另外,关于乘法和移位的关系
左移或者是右移都是二进制数的运算,为了方便我们人们计算,我们和乘法联系起来。
二进制数左移N位,就是这个二进制数对应的十进制数乘以2的N次方。
右移N位,就是十进制数除以2的N次方。
如: 二进制数0000 0100(4) 左移2位是 0001 0000 也就是4X2^2=16
小数的二进制运算
对于十进制小数应乘2,取得整数部分和小数部分,小数部分继续乘2直到小数位为0
0.25的二进制 :
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
原码、反码、补码表示范围
整数 | |
---|---|
原码 | -(2^n-1) - - 2^n-1-1 |
反码 | -(2^n-1) - - 2^n-1-1 |
补码 | -2^n-1 - - 2^n-1-1 |