进制计算及转换和原码反码补码

目录

一,进制类型

二,进制如何计算及其要素

1.进制如何计算

三,进制的表示方法

四,进制之间的互相转换

1.十进制转换二进制:

2.二进制与八进制和十六进制的转换

2.1二进制与八进制

2.2二进制与十六进制

2.3特殊情况

五,原码反码补码 

一,原码

二,反码

三,补码

四,特殊情况


一,进制类型

进制的类型主要有,十进制,二进制,八进制,十六进制。

我们日常所常用的就是十进制,逢十进一,按这个说法就可以知道,n进制就是逢n进1。

二,进制如何计算及其要素

进制数码基数
十进制0~9(总共 10个)10
二进制0和12
八进制

0~7

8
十六进制0~9,a~f(a代表10)16

1.进制如何计算

这个无需多说了吧我想,但我还是把这几个进制用一种表现方式写出来,比如1234,我们就可以这样计算:

1234=4 X 10^0+3 X 10^1+2 X 10^2 +1 X 10^3

0.123=1X 10^-1+2 X 10^-2+3 X 10^-3

这就是具体的计算方法,那么以这个方法我们可以类推出二进制,八进制和十六进制:

二进制:

1110=0 X 2^0+1 X 2^1+1 X 2^2 +1 X 2^3 

八进制:

1357=7 X 8^0+5 X 8^1+3 X 8^2 +1 X 8^3 

十六进制:

9ACE=14 X 16^0+12 X 16^1+10 X 16^2 +9 X 16^3 

就是这样计算,一下子如果看不懂,把十进制的计算方法多看几遍,理解他的计算原理,这样就可以举一反三了。

三,进制的表示方法

这里我们也用表格的方式来表达

进制前缀法后缀法
二进制0b110110B
十进制

 视为没有

110D
八进制0110110O
十六进制0x110110BH

可以知道,16进制因为数码有a~f,所以容易识别错误,我们一般不用但是也需了解。

四,进制之间的互相转换

1.十进制转换二进制:

第一个方法大家小学应该是学过的:一直除以二,知道除尽,然后从下往上取余即可

第二个方法就比较直观了,用直截了当的言语表述:

 二进制表格:

11111111111
10245122561286432168421

那么你要计算1025转换二进制也要除2?非常麻烦我们不推荐,再来查看这个表格,

1025=1024 +1,1024是二进制第11位1表示的值,1是第一位,所以我们很快得出,十进制1025的二进制,10000000001,简单来说,看这些数字哪几位的值加起来等于所求值即可。其他进制同理,因为博主很懒所以就不举例了因为是一样的,我相信天才们看完这个那么其他进制不需要我说也会了。

2.二进制与八进制和十六进制的转换

2.1二进制与八进制

看起来很难,实际上简单的一,直接解释

二进制110转八进制:三合一,110=6,那么八进制就是6,是不是很简单。

举个长点的例子:111111110111111:看着长,三个三个分开111  111   110  111  111,把这几组二进制数变成十进制:  7   7   6   7   7,也就是77677,是不是非常简单。

那八进制转换二进制呢?77677变成7   7   6   7   7,然后这组数字每一个二进制等于多少?

就是111   111   110   111  111,也就是八进制77677的二进制是1111111101111111

2.2二进制与十六进制

上面拆成三个或者三合一,这个就拆成四个或者四合一不就好了,一样举例子:

二进制1111 1111 1110  1111:15  15  14  15,但是我们不能这么写,上面说过,15是f,14是e,那么我们就要写成ffef。

那么反过来同样,ffef便是f  f   e   f,也就是15 15 14 15,转换成二进制1111  1111  1110  1111,没错就是这么简单

2.3特殊情况

刚刚说到拆分合并,三合一四合一,但是有时候不够了数字,还是举例:

二进制11110110111,(补充一下从右往左拆分哈),要转换程八进制也就是 11  110  110  111,诶有个11怎么办,前面加个0啊怎么办当然是加个0啊!十六进制同理。

五,原码反码补码 

在计算机中我们为了简化运算以及符号处理问题,于是引入了原码反码补码这三个概念。

一,原码

我们同样举例,-129,他的原码就是1 10000001,为什么有个1?因为这是符号位,只需记住最前面的0代表正数,1代表负数即可,129就是0 10000001

二,反码

那么-129的反码该如何书写,我们知道,-129的原码是1 10000001,反码就是除了第一位的符号位,其余数值取反即可(1变0,0变1),所以-129的反码就是1 01111110。

三,补码

也是十分简单的计算,就是这个数的反码加一即可,-129的反码是1 01111110,那么加一

就是1 01111111,就是这么的简单。

四,特殊情况

但是,这里有一个特殊情况。在8位表示中,1 00000000 实际上表示的是 -128。这是因为在补码表示法中,最左边的位是符号位,当符号位为1时,表示这是一个负数。而 1 00000000 是 -128 的补码表示,因为 -128 的反码是 1 11111111,补码就是反码加1。

如果你的问题是在16位的上下文中,那么反码 1 11111111 11111111 的补码将是 1 00000000 00000000,这表示 -32768,因为在16位补码表示法中,最左边的位是符号位,当符号位为1时,表示这是一个负数,而 1 00000000 00000000 是 -32768 的补码表示。

在任何情况下,补码都是反码加1。如果反码是全部位都是1,那么补码将是全部位都是0,除了符号位(在正数的情况下),或者符号位为1(在负数的情况下)。

感谢观看!!!若有不足或者问题请联系博主^-^

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值