【软考路上】——原码、反码、补码、移码

简介: 各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用0和1来表示。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等编码方法。

      各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用0和1来表示。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等编码方法。


      注:以下规则均以机器字长为8(即采用8个二进制位来表示数据)来举例说明


      原码


      ⊙正数:如下图①先写上要表示的数据,②符号位(首位)写上0,③如果有空位则用0补上,如X=22=10110B,则[X]原=00010110;


100.png


      ⊙负数:如下图①先写上要表示的数据,②首位写上1,③如果有空位则用0补上,如X=-27=-11011B,则[X]原=10011011。

101.png


      反码    


      ⊙正数:反码等于原码,如X=10110,则[X]反=[X]原=00010110;


      ⊙负数:如下图,在原码的基础上,④符号位(首位)不变,⑤其他位按位取反(0变成1,1变成0),如X=-11011,则[X]原=10011011,[X]反=11100100。


102.png


      补码     


      ⊙正数:补码等于原码和反码,如X=10110,则[X]补=[X]反=[X]原=00010110;

      ⊙负数:在反码的基础上,⑥让反码加1,如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101。


103.png

      移码  


      正数和负数的移码,都是在反码的基础上,让反码的符号位取反,即得该数的移码。如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101,[X]移=01100101。


104.png


      补充:小数的原码、反码、补码、移码的转换  


      原码、反码、补码、移码这几种表示方式之间的转换,基本上只有正数和负数转换的时候有些差别,当遇到小数时,只需要把小数也表示为二进制,转换方式跟正数一样。如X=0.25=0.01,[X]原=0.0100000,[X]反=0.1011111,[X]补=0.1100000,[X]移=1.1100000。


相关文章
|
云安全 安全 网络安全
网络安全 | 什么是云安全?
云安全是应对企业外部和内部威胁的关键,它集合了多种程序和技術,确保云服务(如IaaS、PaaS、SaaS)的安全运行。云计算让企业能灵活扩展,但也带来数据安全管理挑战,包括可见性不足、多租户风险、访问控制困难和合规性问题。配置错误也是主要威胁。应对策略包括身份和访问管理(IAM)、数据丢失预防(DLP)、信息安全和事件管理(SIEM)以及业务连续性和灾难恢复计划。企业需构建安全的云计算框架,遵循网络安全框架,并利用云安全态势管理(CSPM)来防止错误配置造成的风险。
334 0
|
存储 Python
Python代码搞定分数等级划分
Python代码搞定分数等级划分
830 0
|
Shell Python
miniconda使用体验
## 简介 miniconda是什么呢? 这里简单用一个公式来说明 miniconda = virtualenv + pyenv + pypi源 通过miniconda可以实现创建隔离的python包环境,下载特定的python包版本,使用conda源上编译好的whl包。可以说一应俱全。 ## 安装 miniconda在Mac可以直接用Brew安装,一行命令 `brew install mini
1128 0
|
网络协议 网络安全 数据安全/隐私保护
windocs连接麒麟桌面---vnc软件
windocs连接麒麟桌面---vnc软件
373 0
|
7月前
|
存储 数据采集 数据格式
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
386 1
|
机器学习/深度学习 存储 数据采集
数字化与数智化有什么区别?
数字化(Digitalization)是将信息转换为数字(即计算机可读)格式的过程。数智化(Digital and Intelligent Transformation)是数字智慧化与智慧数字化的融合。
560 1
|
12月前
|
安全 Oracle Java
edge浏览器加载java插件
edge浏览器加载java插件
676 1
|
存储 C语言
【数据结构】逻辑结构与物理结构
【数据结构】逻辑结构与物理结构
434 1
|
NoSQL MongoDB 数据库
在Flink的BEGIN STATEMENT SET;END;语句
在Flink的BEGIN STATEMENT SET;END;语句【1月更文挑战第19天】【1月更文挑战第93篇】
270 7
Object.assign详解
Object.assign详解
388 1