简介
计算机常用二进制表示一个数;
二进制只有0
和1
两个数,常用下标表示,如(10)₂;
十进制常用下标10
表示,或者在数字后面加字母D
表示;
八进制常用下标8
表示,或者在数字后面加字母O
表示;
十六进制就是由十进制演变而来,在十进制的基础上,用A
表示10,B
表示11,C
表示12,D
表示13,E
表示14,F
表示15,如(A1B4)₁₆或者A1B4H;
二进制适用于逻辑运算。
十进制转二进制
把十进制192转为二进制
首先列出权位
权位 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|
二进制 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
然后用192来减权位
192=128+64
上面可以看出十进制的192等于128加64,所以对应128和64的权位的位置为1,剩下的为0
最后十进制192转为二进制为11000000
二进制转八进制
继续用192的二进制来转八进制,192的二进制是11000000
把192的二进制从右往左拆分开,三位一组,前面不够的补零,分为三组后的结果为
第三组 | 011 |
---|---|
第二组 | 000 |
第一组 | 000 |
因为一组三个数,所以我们的权位只用列出三个就可以,先计算第一组二进制的结果,
计算的原理为二进制对应的权位相加,0为0 计算第三组:
权位 | 4 | 2 | 1 |
---|---|---|---|
二进制 | 0 | 1 | 1 |
最后结果:0+2+1=3
计算第二组:
权位 | 4 | 2 | 1 |
---|---|---|---|
二进制 | 0 | 0 | 0 |
最后结果:0+0+0=0
计算第一组:
权位 | 4 | 2 | 1 |
---|---|---|---|
二进制 | 0 | 0 | 0 |
最后结果:0+0+0=0
最后结果:
二进制组 | 权位相加的结果 | |
---|---|---|
第三组 | 011 | 3 |
第二组 | 000 | 0 |
第一组 | 000 | 0 |
最后计算出的192的二进制转八进制的结果为300
二进制转十六进制
十六进制从10开始用字母表示,字母A表示10,B表示11,C表示12以此类推到F表示15
二进制转十六进制的原理和二进制转八进制的原理一样,二进制转八进制是把二进制从后面开始三位分为一组,二进制转十六进制就是把二进制从后面开始四位分位一组,前面不够的补零。
继续使用192的二进制来转十六进制,192的二进制是八位,刚好够分两组,因为二进制转八进制是四位一组,所以权位我们要列出四位。
第二组 | 1100 |
---|---|
第一组 | 0000 |
计算第二组:
权位 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
二进制 | 1 | 1 | 0 | 0 |
最后结果:4+8+0+0=12,12在十六进制中用C表示,所以最后的结果为c
计算第一组:
权位 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
二进制 | 0 | 0 | 0 | 0 |
最后结果:0+0+0+0=0
最后结果:
二进制组 | 权位相加的结果 | |
---|---|---|
第二组 | 1100 | 12=C |
第一组 | 0000 | 0 |
最后192的二进制转为十六进制的结果为C0
提示
十进制需要转为八进制和十六进制时先转为二进制之后在更具上面的方法转换,十六进制和八进制转十进制也是需要先转为二进制,二进制在转十进制,转换方法更具上面的方法逆推就可以,原理一样
示例:十六进制转二进制
继续使用192的十六进制来转二进制,192的十六进制为C0,C表示的是12,12=8+4,0为0,十六进制一位是二进制的四位,我们先一位一位的转
先转C:
C=12=8+4
权位 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
二进制 | 1 | 1 | 0 | 0 |
最后的结果是1100,已经得出二进制的前四位了
在转0:
0为0,也就是四个权位对应的二进制都为0
权位 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
二进制 | 0 | 0 | 0 | 0 |
最后的结果是0000,这个是二进制的后四位
把前四位和后四位连起来就可以得出结果为:11000000
原码、发码、补码
计算机在存一个数分为原码、反码、补码,存储用的是补码。
0=正数
1=负数
数值1 | 数值-1 | 1+(-1) | |
---|---|---|---|
原码 | 00000001 | 10000001 | 10000010 |
反码 | 00000001 | 11111110 | 11111111 |
补码 | 00000001 | 11111111 | 00000000 |
左边的第一个数叫符号位,0为正数,1为负数;
原码转反码是符号位不变,数值位取反;
原码转补码和补码转源码都是符号位不变,数值为先取反后加1;
补码的0只有一种表单方式,那就是全部为0。