嗨,小伙伴们,第一天让我们一起来学习二进制吧。——要想高楼建得好,得把地基打得牢!
一、进制的概念
进制:进位计数制
常见的计数制:十进制、二进制、八进制、十六进制等。
不同进制表示0-15的数值 0~15的二进制表示需要记住
二、进制转换
1、进制的基与权
基:基数,进制的位数,数码的个数。
如二进制的基就是二,八进制的基是八
权:位权,每一位数的权值大小。
进制中每一位数对应的权数
二进制:1 0 1 1 权: 8 4 2 1
讯享网
2、二进制位数(需背记)
8位无符号二进制
取值:0~255 个数:256
16位无符号二进制
取值:0~65535 个数:65536
32位 无符号 二进制
取值:0~
32位 有符号 二进制
取值:-~
3、转换为十进制 位乘以权相加
二进制转换为十进制
八进制转换为十进制
4、十进制转换为二进制
(1)整数
短除以2,逆序取余
对整数十进制进行短除,取余数
用位权逼近
选择与十进制相近的位权进行加和
讯享网 如:72 --> 64+8 -->
(2)小数
乘二取整
对小数位的数字作2的乘法,每次乘数之后将其结果的整数部分按顺序提取出来
0.3 * 2 ——————— 0.6 0 * 2 ..... ———————— 0.01001 (1)0.2 1 * 2 ————————— 0.4 0 * 2 —————————— 0.8 0 * 2 —————————— (1)0.6 1

5、十进制转换为八进制
短除以8,逆序取余
6、二进制转换为八进制或者十六进制
从低位开始,每3(4)位分隔成一个单元,分别转为八(十六)进制
讯享网 --> 011 010 011 -->323 --> 1101 0011 --> D3
-->八(十六)进制转二进制-->每个数值分别转为3(4)位的二进制即可,特别注意如果不足3(4)位高位补0
323 --> 3 2 3 --> 011 010 011 -->
三、四则运算
在所有计算机中,所有的运算都转换为加法运算
讯享网 53: 29:11101
加法运算:从低位开始位与位之间相加,结果只为0或1,特别的是,二进制中1+1结果为0,并向前进1
+ 11101 ——————————
减法运算:从低位开始位与位之间相减,结果只为0或1,特别的是,二进制中0-1运算向前借1,使运算结果为0
讯享网 - 11101 —————————— 11000
乘法运算:依次相乘
* 11101 ——————————————— —————————————————
除法运算
讯享网 /11101=1....11000
四、原码反码补码
在涉及原码反码补码的时候,我们通常都是考虑八位二进制数,因此不够的需要高位补充,超出的需要排开
1、原码
由符号位和真值组成。原码=符号位+真值 0表示正数,1表示负数
2、反码
正数:反码=原码

负数:反码=原码符号位不变,其余位取反
3、补码
正数:补码=反码=原码

负数:补码=反码+1

计算机中所有数值是以补码的形式存在
29 00011101 -29 : ---原码 ---反码 ---补码 -29 + 33 = ? + 00 ———————————————— (多余位要排除出去) -->00000100 -->4 -33+29=? (原码) -->(反码)-->(补码) + 00011101 —————————————— (补码)--->(反码)-->(原码) -->-4
讯享网 127的补码:0 ........ 00000010 00000001 0的补码:00000000 -1的补码: -2的补码: -3的补码: .... -127的补码: -128的补码:
16位的二进制补码的范围: ....000~0111....111 -32768~32767 32位的二进制补码取值范围: 100...0000~011...111 -~
五、位运算
1、位与运算 &
二进制进行运算,两者都为1,结果是1,只要有一个0,结果就是0
讯享网011010 & ————————— 000010
2、位或运算 |
两者有一个为1,结果是1,两者都是0,结果就是0
011010 | ——————————
3、按位取反 ~
对所有位都取反
讯享网-5 --> 00000101 ^00000101 --> (补码) --> (反码) --> (原码) -->-6
4、异或 ^
相同为0,不同为1
011010 ^ ——————————
5、位移
(1)>>: 带符号右移 <!--相当于除以2-->
讯享网正:4>>1=2 00000100 --> 00000010 -->2 负:-4>>1=-2 (原)-->(反)-->(补) >>1 (补)--> (反)--> (原)-->-2
(2)>>>: 不带符号右移 <!--高位补0-->
-4>>>1=126 (原)-->(反)-->(补) >>>1 0 --> 126
不带符号右移可使负数变成正数
(3)<<: 带符号左移 <!--相当于乘2-->
讯享网4<<1=8 00000100 <<1 --> 00001000 --> 8
在八位二进制相关运算中,凡是遇到负数(符号位为1),就得注意原码与补码的换算


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42179.html