进制转换及原码补码反码

本文介绍了N进制(包括2、8、10、16进制)的基本概念和转换方法,以及原码、反码和补码在整数表示中的应用,解释了为何在计算机中使用补码的原因。
摘要由CSDN通过智能技术生成

其实在生活中,我们经常听闻2进制、8进制、10进制、16进制..这些都是数值的不同表示形式。

eg.

15的2进制:1111

15的8进制:17

15的10进制:15

15的16进制:F

*N进制数字由0-(N-1)的数组成【十六进制中10=a,11=b,12=c,13=d,14=e,15=f】

*N进制数字满N进一

一、N进制转十进制 

在这里我们可以将N进制中的N理解为每个数的权重。如下图所示:

也就是1*8^1+7*8^0=15

二、M进制转N进制

1.10进制转2进制

对十进制的数一直除以二每次都有数值为0/1的余数,直到最后一步,将所有余数从下到上输出即为二进制数字。

2.2进制转8进制

【8进制数字】:由0~7组成,表示为(0+十进制数字)=8进制数字   ps.是零不是O

通过上面的讲解,大家一定记得,八进制数字是由0~7组成的,而0~7的二进制分别表示为

0:000   1:001  2:010  3:011  4:100  5:101  6:110  7:111  

我们发现这组数至多需要三个二进制位就可以组成。如下图所示:

我们将2进制的数字从右到左每三个为一组进行转换,不足三个的直接转换,便可以得到八进制数。

【转换方式】以前文中提及2进制转10进制的方法进行转换;

3.2进制转16进制

【16进制数字】:0~9 a b c d e f  组成;表示为(0x+十进制数字)=8进制数字   ps.是零不是O

同上,而0~f 的二进制表示中至多需要四个二进制位组成

如下图所示:

我们将2进制的数字从右到左每四个为一组进行转换,不足四个的直接转换,便可以得到十六进制数。

【转换方式】以前文中提及2进制转10进制的方法进行转换;

4.2进制的回归

将N进制转化为2进制时,将每一个数变为相应的二进制,如八进制是将每个数变为三个二进制组成的数再组合,十六进制是将每个数变为四个二进制组成的数再组合~

三、原码、反码、补码

原码、补码、反码都是整数的二进制的表示方法。

如果是有符号的整数,三种表示方法均有符号位数值位两部分,在2进制序列中,最高一位为符号位,其余都是数值位。

符号位:0表示“正”;1表示“负”

对于正整数来说,三种表示方法均相同;对于负整数来说三种表示方法各不相同;

下面就负整数来说:

1.原码

直接将数值按照正负数形式翻译为二进制得到的就是原码;

2.反码

将原码符号位不变,其他位依次取反就可以得到反码;

3.补码

(1)反码+1得到补码;例如上图:

补码得原码:取反+1

(2)补码相关补充

对于整形来说,数据存放内存中其实存放的是补码。

为什么呢?

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器),此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值