目录
一、二进制
1.1、生活中的进制
我们经常能听到二进制、八进制和十六进制这样的讲法,那这是什么意思呢?其实呀,不管是什么进制,都是数值的不同表达形式。
比如数字15:
15的二进制:1111
15的八进制:17
15的十进制:15
15的十六进制:f
我们重点说一下二进制:
我们日常是生活中所使用的是十进制,我们已经知道:
- 十进制满10进1
- 十进制的数字每一位都是0~9的数字组成
其实二进制也是一样的:
- 二进制满2进1
- 二进制的数字每一位都是0~1的数字组成
1.2、二进制的转换
十进制的123表达值是一百二十三,为什么是这个值呢?其实10进制的每一位都是由权重的,10进制的数字从右到左是个位、十位、百位……,每一位的权重分别对应,,……
如图所示:
二进制和十进制是类似的,只不过二进制每一位的权重是
比如是二进制的1101,该怎么理解呢?
那么十进制和二进制怎么进行转换呢?
每次除以2然后得出的余数从下往上换算出来就是二进制了。
1.3扩展二进制转八进制和十六进制
8进制的数字每⼀位是0~7的,0~7的数字,各⾃写成2进制,最多有3个2进制位就⾜够了,⽐如7的⼆ 进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀ 个8进制位,剩余不够3个2进制位的直接换算。
就比如图上二进制的01101011,换成八进制:0153,0开头的数组,会被当做八进制
我们打印0153,打印出来的是107,而107的二进制就是01101011
接下来看二进制转化为十六进制
16进制的数字每⼀位是0~9,a ~f 的,0~9,a ~f的数字,各⾃写成2进制,最多有4个2进制位就⾜够了, ⽐如 f 的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个⼆进制位的直接换算。
还是二进制的01101011,转换成十六进制,0x6b,0x开头的数值表示16进制
我们打印一下0x6b,看看打印出来是不是107
二、原码、反码和补码
整数的二进制表示方法有三种,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位0表示“正”,1表示“负”,数值为最高位的一位是被当作符号位,剩余的都是数值位。正整数的原码、反码和补码都相同。负整数的三种表示方法各不相同。
举个列子:
正整数1的原码、反码和补码都是
00000000 00000000 00000000 00000001
而负整数-1的原码、反码和补码是
10000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
这个有什么规则呢?负整数的原码、反码和补码的规则是:
- 原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。
- 反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。
- 补码:反码+1就得到补码。
对于整型来说,数据存放内存中其实存放的就是补码,为什么呢?
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理:同时,加法和减法也可以统一处理(cpu只有加法器)此外补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
今天就是这些内容啦。今天《甜甜的》!
今天的文章二进制的介绍,原码,反码和补码是什么_二进制通俗易懂分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82000.html