-128的补码及原码、反码、补码
一、原码
一个字节占8位;
一个字长为n的机器数能表示不同的数字的个数是固定的2^n个,n=8时2^n=256;
用来表示有符号数,数的范围就是 -2^(n-1) ~ 2^(n-1)-1,n=8时,这个范围就是 -128 ~ +127。
用来表示无符号数,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255 。
原码
原码
原码是计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。为了方便整数和小数区别,整数的符号位与数值位之间用“,”隔开,小数的符号位与数值位之间用“.”隔开。
根据2个定义可以看出,原码的整数和小数中“0”的表示形式各有2种,“+0”和“-0”不一样,以8位机器数为例,整数的“+0”原码为0,0000000;整数的“-0”原码为1,0000000;小数的“+0”原码为0.0000000,小数的“-0”原码为1.0000000。满足条件的数,带入定义里面计算机,主要机器数位,直接计算得到。
二、反码
码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反
三、补码
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
求取补码,就按照定义的规定,负数采用“模减去绝对值”的方法来求,这是求补数的通用方法,适合于各种进制、各种大小的数字。
已知一个数 X,其 8 位字长的补码定义为:
/ X 0 <= X <= +127 ;正数和0的补码,就是该数字本身
[X]补 = |
\ 2^8 -|X| -128 <= X < 0 ;负数的补码,就是用 1 0000 0000,减去该数字的绝对值例如 X = -126,其补码为 1000 0010,计算方法如下:
1 0000 0000
- 0111 1110
-----------
1000 0010可以看出,按照补码的定义来求补码,概念十分清晰,方法、步骤也是十分简单的。
应用补码进行计算
用补码计算:83-25=58。83 ---都变成补码,再用加法运算--> 0101 0011
- 25 -> 1 0000 0000 - 0001 1001-> + 1110 0111
----- --------
58 <--忽略进位1,结果就是正确的--[1] 0011 1010
a-b=a-b+mod=a+(mod-b)
补码
实例:
(1) 已知原码,求补码。
例:已知某数X的原码为10110100B,试求X的补码和反码。
解:由[X]原=10110100B知,X为负数。求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。
1 0 1 1 0 1 0 0 原码
1 1 0 0 1 0 1 1 反码,符号位不变,数值位取反
1 +1
1 1 0 0 1 1 00 补码
故:[X]补=11001100B,[X]反=11001101B。
(2) 已知补码,求原码。
规则1:已知一个数的补码,求原码的操作其实就是对该补码再求补码
⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
例:已知一个补码为11111001,则原码是10000111(-7)。
因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;再加1,所以是10000111。
规则2:递推法
分析:按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法。
例:已知某数X的补码11101110B,试求其原码。
解:由[X]补=11101110B知,X为负数。
采用逆推法
1 1 1 0 1 1 1 0 补码
1 1 1 0 1 1 0 1 反码(末位减1)
1 0 0 1 0 0 1 0 原码(符号位不变,数值位取反)
四、-128的补码
参考链接:
补码的理解(-128的补码解释)
原码、反码和补码
-128的补码及原码、反码、补码相关推荐
- 原码 反码 换算工具 补码_原码/反码/补码在线计算器
原码/反码/补码计算器,在线计算给定整数的原码/反码/补码. 原码, 反码和补码的概念 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 原码 ...
- 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...
本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...
- 原码 反码 补码的相互转换
原码 反码 补码的相互转换 原码 反码 补码的转换 还是比较 简单基础的问题.之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了. ...
- python原码反码补码
python原码反码补码 1. 计算机计算的逻辑 2. 原码反码补码 2.1 正数: 2.2 负数 2.3 原码与补码之间的转换 2.3.1 原码->补码 2.3.1 补码->原码 2.3 ...
- 浅谈 -128的原码 反码 补码
以java中byte表示:2字节 8位,-128 首先首位1表示负数,128的正数为1000 0000(其实是-128),然后拼接为1 1000 0000,大于8位,则取低8位,为1000 0000, ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 原码, 反码, 补码, 移码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 大端 小端 原码 反码 补码 及内存中的表现
小端 和 大端 在内存中存储时,都是从内存的低地址往高地址存,即0x00000000 -> 0xffffffff 以汉字 "严"为例,Unicode码是4E25,需要两个字节 ...
- 原码 反码 补码 详解
一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
最新文章
- python程序如何做界面_python是如何写界面程序的?
- ubuntu 杀死进程命令
- 用户看法调查结果及分析(四)
- [转] 数学符号英文拼写及发音
- 语音识别发展必牺牲隐私?最大问题或因不符用户预期,需增透明性
- matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc
- cad批量偏移_学会这12个CAD制图命令,走遍天下都不怕,有没有兴趣?
- pythonappend用法_python中append实例用法总结
- [css] 请问display:inline-block在什么时候会显示间隙?
- 【CAS】Implementing generic double-word compare and swap for x86/x86-64
- Atitit.Gui控件and面板----数据库区-mssql 2008 权限 配置 报表查看成员
- 显式强制类型转换static_cast, dynamic_cast, const_cast, reinterpret_cast
- POJ 1740 A New Stone Game(博弈)题解
- android uid变化,在Android中安装期间确定应用的UID如何?
- “伊”心一意研技术,“伊”丝不苟做服务。Electropure EDI 成功参展第12届上海国际水展
- 安卓机如果相册不选图片就退出_2020最新制作动态相册技巧
- model.train()与model.eval()的用法、Dropout原理、relu,sigmiod,tanh激活函数、nn.Linear浅析
- 微信小程序开发后台篇(四)AWS EC2实例云部署---Windows环境通过PuTTY连接EC2实例
- 使用webots的MPC的移动机器人轨迹跟踪控制
- [linux] Linux网络之TCP协议详解