博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进制之间的互相转换,进制的原码,反码,补码
阅读量:7296 次
发布时间:2019-06-30

本文共 1818 字,大约阅读时间需要 6 分钟。

 

进制的原码,反码,补码

一、编码理解:

1、原码:

正数:按照绝对值大小转换成的二进制数;

负数:按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

00000000 00000000 00000000 00000101是 5的 原码;

10000000 00000000 00000000 00000101是 -5的 原码。

2、反码:

正数:与原码相同;

负数:该数的原码除符号位外各位取反。

正数00000000 00000000 00000000 00000101的反码还是 00000000 00000000 00000000 00000101 ;

负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。

称:10000000 00000000 00000000 00000101和 11111111 11111111 11111111 11111010互为反码。

3、补码:

正数:与原码相同;

负数:该数的原码除符号位外各位取反,然后在最后一位加1。

10000000 00000000 00000000 00000101的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

所以,-5在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

二、二进制

数据的二进制表示即为数据的补码,也是计算机底层的存储方式。

1.正数的反码和补码都与原码相同。

2.负数的原码为:绝对值转换为二进制,然后最高位补1,称为原码;

3.负数的反码为:对该数的原码除符号位外各位取反。

4.负数的补码为:对该数的原码除符号位外各位取反,然后在最后一位加1。

三、十进制转二进制

3.1 整数:即求补码的方法(除基倒取余法)

3.1.1 正整数:

1.输入一个十进制数n;

2.每次用n除以2;

3.把余数记下来,再用商去除以2...

4.依次循环,直到商为0结束;

5.把余数倒着依次排列,就构成了转换后的二进制数。

3.1.2 负整数:

1.先取绝对值得到正数;

2.求出该正数的二进制表示,方法参考上面;

3.对上一步的结果最高位补1,得到该负整数的原码;

4.根据改原码求补码,即为二进制;(除符号位外各位取反,然后在最后一位加1。)

3.2 小数:(不分正负)

3.2.1 方法:乘2取整,顺序排列

3.2.2 具体步骤

1.用2乘十进制小数,可以得到积;

2.将积的整数部分取出,再用2乘余下的小数部分,又得到一个积;

3.再将积的整数部分取出,如此进行,不断重复2;

4.直到积中的小数部分为零或者达到所要求的精度为止。

四、二进制转十进制

4.1 正整数:(最高位为符号位)

例:

二进制正数:0000 1010 (十进制为10)

转换为十进制数:1*2^3+0*2^2+1*2^1+0*2^0=10

4.2 负整数:(最高位为符号位)

+10的原码:0000 1010

-10的原码:1000 1010

-10的反码:1111 0101

-10的补码:1111 0110

最终。-10的二进制:1111 0110 (十进制为-10)

转换为十进制数:

 1*2^6-1*2^5-1*2^4-0*2^3-1*2^2-1*2^1-0*2^0

=2^4-2^2-2^1=16-4-2=10(前面加一个负号,即为-10)

注意:

1.最高位为符号位,不做计算;

2.计算时,从左往右,从2^0开始。所以8位有符号二进制,符号位后的第一位对应的是2^6,而不是2^7

4.3 小数:

二进制:0000 1010.1100

转换为十进制:

小数点前+小数点后

=(1*2^3+0*2^2+1*2^1+0*2^0)+(1*2^(-1)+1*2^(-2)+0*2^(-3)+0*2^(-4))

=10+0.75

=10.75

 

转载于:https://www.cnblogs.com/814467783sweet/p/9595623.html

你可能感兴趣的文章
c# 利用AForge.NET组件操作摄像头
查看>>
简单实用jQuery poshytip
查看>>
[转载]MVC之父对“模型-视图-控制器”的最初定义
查看>>
MySQL 数据类型 详解
查看>>
TreeMap 的排序
查看>>
解决JOOQ的Database product name must not be null问题
查看>>
终于有人把SDH、MSTP、OTN和PTN的关系解释清楚了……
查看>>
H5面试----介绍一下 CSS 的盒子模型
查看>>
版本管理规范
查看>>
ssh登陆不需要密码(配置信任有关系)
查看>>
Kubernetes[4]—RC(复制控制器-副本集)
查看>>
Citrix XenServer 优化
查看>>
js仿京东轮播图效果
查看>>
x-manager 管理 kvm虚拟机
查看>>
MySQL同步时,出现的ERROR 1201 (HY000)错误解决方法
查看>>
TurboMail邮件系统异地分布式部署方案
查看>>
我的友情链接
查看>>
Executors.newFixedThreadPool和ArrayBlockingQueue一点使用心得
查看>>
Android异步从网络下载图片并且缓存图片到本地的demo
查看>>
Linux Shell编程入门
查看>>