Hello,大家好,我是一代,今天给大家讲解有关二进制的知识
1.进制
1.二进制
二进制是计算机广泛采用的一种数制,在二进制中满2进1,用0和1两个数来表示。
2.8进制
8进制满8进1,用0到8的整数来表示
3.10进制
10进制是我们日常生活中用到的最多的进制,满10进1,用0到9的整数来表示,以数字0开头。
4.16进制
16进制满16进1,数字10到15用a到f表示,用1-9和a-f表示,以 0x 或 0X 开头表示,这里a-f并不区分大小写,A-F与10到15依次对应。
2.进制转换
1.二进制转10进制
平时我们用到的数字都是用10进制来表示,如123的值是一百二十三,为什么是这个值呢?因为10进制的值的每一位是权重的,从左往右所占的权重分别是10^0,10^1,10^2,10^3……
如图:

二进制,8进制,16进制也和10进制一样也是按权重来计算的。
比如二进制的1101用十进制来表示就是1*2^3+1*2^2+0*2^1+1*2^0=13
2.10进制转二进制
转换规则:将该数不断除以2,直到商为0为止,然后每步得到的余数倒过来,就是对应的二进制

3.8进制转10进制
转换规则:从最右边开始,权重从0开始依次增大,把每位数提取出来乘以8的权重
如将0211转换为10进制就是1*8^0+1*8^1+2*8^2=137
4.10进制转8进制
转换规则:将该数不断除以8,直到商为0为止,然后每步得到的余数倒过来,就是对应的八进制
如123转换为8进制就是173

5.二进制转16进制
转换规则:二进制从右向左每四位就转换为一位16进制位,如不足4个二进制位的就直接转换
如二进制的01101011转换为16进制就是0x6b
6.二进制转8进制
转换规则:二进制从左向右每3位转换位一个8进制位,不足3个二进制位的就直接转换
如二进制的01101011转换位8进制就是0153,0开头的数字表示8进制
7.8进制转二进制
转换规则:每一位8进制位转换为3位二进制
如8进制的0153转换为二进制为1101011
其他进制转换和以上方法类似,这里就不在举例,这里10进制转换为8进制,16进制有通用的方法,就是先将10进制转换为二进制,再将二进制转换为8进制和16进制。
3.原码,反码,补码
整数二进制表示方式有三种原码,反码,补码
有符号整数的三种表⽰⽅法均有符号位和数值位两部分,2进制序列中,最⾼位的1位是被当做符号位,剩余的都是数值位。符号位都是⽤0表⽰“正”,⽤1表⽰“负”。
正数的原码,反码,补码都相同
负数的3种表示方式各不相同
原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。
反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。
补码:反码+1就得到补码。
补码取反加1也可以得到原码
例如:-1
-1的原码:1000 0000 0000 0001
-1的反码:1111 1111 1111 1110
-1的补码:1111 1111 1111 1111
对于整形来说:数据存放内存中存放的是补码。
本文详细介绍了二进制、8进制、10进制和16进制的基本概念,以及它们之间的转换规则,包括原码、反码和补码在整数表示中的应用。重点强调了在计算机内存中,整形数据通常以补码形式存储。

1万+

被折叠的 条评论
为什么被折叠?



