数据表示——原码/反码/补码/移码/浮点数

IEEE754浮点数表示,为什么偏移码是127?为什么偏移码范围是1~254? 以单精度浮点数为例 IEEE754规定,s作为符号位,用0(正),1(负)表示,E作为阶码用移码表示(后面解释为什么用移码),M作为尾数,并规定最高位总为1,因此将1省略,简称隐藏位。 填坑。为什么将E作为移码表示? 首先明确一个概念,什么移码?移码(增码)是为了某个目的存在,是符号位取反的补码。 例: X=+1011 [X]移=11011 X=-1011 [X]移= 阅读详情
AI摘要

计算机中数值信息分整数和实数,整数是定点数,含原码、反码、补码和移码;实数是浮点数。原码减法有问题引出反码,反码计算不同负数相加仍有问题,进而出现补码。移码是补码符号位取反,用于表示浮点数阶码。浮点数运算包括对阶、尾数计算和结果格式化。

计算机中的数值信息分成整数和实数两大类。整数不使用小数点,或者说小数点总是隐含在个位数的右边,所以整数也称为“定点数”,包含原码、反码、补码和移码。相应地,实数也称为“浮点数”。

正数负数
原码最高位为符号位0,其他位为真值的二进制。最高位为符号位1,其他位为真值的二进制。
反码等于原码。按原码除符号位外,其他位取反。
补码等于原码。等于反码+1 或者 求(2机器字长-负数的绝对值)的原码。
移码补码的符号位取反。补码的符号位取反。

1. 原码

最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值(真值)。

数值+0-0
原码(按8位二进制示例)0 00000001 0000000
数值+2-2
原码(按4位二进制示例)0 0101 010

原码运算——加法

运算数值原码原码转十进制
1000000011
+2000000102
=3000000113

原码运算——减法

运算数值原码原码转十进制
1000000011
+-110000001-1
=010000010-2

注意,计算机中减法相当一个正数加上一个负数,原码减法出现问题,一个数加上它本身的相反数不等于0,于是反码登场。

2.反码

正数的反码,等于原码。
负数的反码,按原码除符号位外,其它位取反。

数值+0-0
原码(按8位二进制示例)0 00000001 0000000
反码(按8位二进制示例)0 00000001 1111111
数值+2-2
原码(按4位二进制示例)0 0101 010
反码(按4位二进制示例)0 0101 101

之前原码中减法出现问题,一个数加上它本身的相反数不等于0,我们现在用反码再试一下。

运算数值原码反码反码转原码转十进制
100000001000000011
+-110000001111111110-1
=0-11111111-0

反码相加的最后结果11111111,要先转成原码(即除符号位外的相反数)为10000000,原码再转十进制,最终结果为-0(负零也是零,算是对了吧!)。

那么,如果(-1)+(-3)结果是多少?

运算数值原码反码反码转原码转十进制
-11000000111111110-1
+-31000001111111100-3
=-4-11111010-5

注意,两个不同负数值相加,采用反码运算的结果也不正确,于是补码登场。

3.补码

正数的补码,等于原码。
负数的补码,等于反码+1。

数值+0-0
原码(按8位二进制示例)0 00000001 0000000
反码(按8位二进制示例)0 00000001 1111111
补码(按8位二进制示例)0 00000000 0000000
数值+2-2
原码(按4位二进制示例)0 0101 010
反码(按4位二进制示例)0 0101 101
补码(按4位二进制示例)0 0101 110

负数还有一种计算补码的方法,公式:负数的补码 =(2机器字长 - |负数的绝对值|)的原码。
例如,若机器字长为4,求-2的补码。
套入公式过程如下:
( 24 - 2) = 14,
14的原码 = 1110,
-2的补码 = 1110。

之前反码计算不同负数值相加出现问题,我们现在再用补码试一下。

运算数值原码反码补码补码转十进制
-11000000111111110111111111-1
+-3100000111111110011111101-3
=-4--11111100-4

补码转十进制的过程如下:

补码11111100
补码的反码10000011
补码的反码的补码10000100
补码的反码的补码转十进制-(1*22) = -4

计算机中均采用补码进行加减运算。

4. 移码

移码就是补码的符号位取反。 主要用在表示浮点数的指数(阶码)。

数值+2-2
原码(按4位二进制示例)0 0101 010
反码(按4位二进制示例)0 0101 101
补码(按4位二进制示例)0 0101 110
移码(按4位二进制示例)1 0100 110

5.浮点数

实数又称浮点数,通常是既有整数部分又有小数部分的数,整数和纯小数只是浮点数的特例。 例如:3.1415926,-9527,0.01579等都是实数。

任何一个浮点数都可以表示一个乘幂和一个纯小数的乘积。 例如:
3.1415926 = ( 0.31415926 ) * 101
-9527 = ( -0.9527 ) * 104
0.01579 = ( 0.1579 ) * 10-1

其中,乘幂中的指数部分用来指出浮点数中小数点的位置,括号括出的是一个纯小数。 二进制数的情况完全相同,例如:
10101.01 = ( 0.1010101 ) * 2101
0.000111 = ( 0.111 ) * 2-11

  • 浮点表示法: F = 尾数 * 基数指数

尾数: 是一个纯小数,用补码表示,位数决定数的有效精度,位数越多精度越高。
基数: 取进制数,即十进制基数为10,二进制基数为2,八进制基数为8,十六进制基数为16。
指数: 又称阶码,是一个整数,用移码表示,位数决定数的表示范围,位数越多范围越大。

浮点数运算过程先后分为:对阶、尾数计算 和结果格式化。

对阶就是将指数对齐,原则是从小向大看齐,通过较小数的尾数向右移动实现。

运算浮点数浮点表示法对阶后的浮点数
3141.59260.31415926*1040.0031415926*106
+314159.260.31415926*1060.31415926*106
=-0.3173008526*106
【软件设计师备考指南】计算机基础:从数制转换到浮点数与编码全解析 本文系统介绍了计算机底层数据处理的核心知识点,包括数制转换、机器数编码、浮点数表示及算术逻辑运算。重点讲解了二进制与十进制/十六进制的转换方法,原码/反码/补码/移码的编码规则及其应用场景,以及浮点数的结构设计如何平衡数值范围与精度。这些基础知识构成了计算机数值处理的核心框架,对理解计算机工作原理、排查数值精度问题以及学习后续课程都具有重要意义。文章通过具体示例和对比分析,帮助读者掌握这些关键概念。 阅读详情

相关推荐

计算机组成原理408考点:数据表示与运算、补码与IEEE 754浮点数全解析

在计算机系统中,数据以二进制形式存储和运算,理解机器视角下的数制与编码是底层开发的基石。从进制转换到定点数、浮点数的表示,补码与移码解决了符号位运算与溢出判断,而IEEE 754标准则统一了浮点数的存储格式,解释了0.1+0.2为何不等于0.3这类工程常见问题。这些概念不仅贯穿计算机组成原理的考研408考点,也直接影响C语言中的类型转换、数据比较与精度处理。掌握原码、反码、补码的转换逻辑,熟悉浮点加减法的对阶与规格化流程,能帮助开发者规避溢出与精度陷阱,并深入理解硬件运算单元的设计思路。本文以真题视角梳理数

weixin_42615290的博客 244

原码、反码、补码、移码及其运算

原码: 如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示概数的绝对值。 例如: X=+101011 , [X]原= 00101011 X=-101011 , [X]原= 10101011 位数不够的用0补全。 PS:正数的原、反、补码都一样:0的原码跟反码都有两个,因为这里0被分为+0和-0。 反码: 知道了什么是原码,那反码就更是张飞吃豆芽——小菜一碟了。知道了原码,那么你只需要具备区分0跟1的能力就可以轻松求出反码,为什么呢?因

Chenweidalao的博客 1万+

5.1.6_移码

计算机组成原理之移码

人生得意须尽欢 7667

【计算机组成原理】原码 反码 补码 移码

原码、反码、补码、移码的概念 原码、反码、补码、移码的转换

AIGC 4万+

投入产出表之直接消耗系数和完全消耗系数计算--基于Excel

介绍 上篇博客已介绍投入产出表的结构类型及意义解读,在此就不重复写了。 投入产出法中相对稳定的因素是一些系数,根据投入产出表可以计算很多系数: 案例 案例数据即流量矩阵,采用的是中国2012年的部分行业数据,若有不对,请批评指正哈。 直接消耗系数的计算 根据上表和直接消耗系数的计算公式,直接消耗系数矩阵通常用A表示。农林牧渔产品和服务部门对其他部门产品的直接消耗系数分别为: 这些消耗系数的经济意义是,农、林、牧、渔产品和服务部门每生产单位(1亿元)总产出,要直接消耗0.1378亿元本部门产品,0.26

m0_46271335的博客 7万+

Feko仿真GPS微带天线学习笔记

为了优化方便,使参数变量化,所以定义几个变量在CADFEKO左侧浏览器中如图所示定义变量,如下表贴片的尺寸切角尺寸feed =-6.4馈电点距坐标原点的距离sub_w=45基板的宽度sub_d=45基板的长度sub_h=5基板的高度epsR=5.6介电常数损耗角正切。

qq_36521926的博客 3989

原码、反码、补码、移码的定义以及各自的优缺点

二进制数、原码、反码、补码、移码、优缺点、用途

xiangru的博客 3776

天线学习笔记——HFSS简单阵列天线

在HFSS15.0版本中使用 Radiation --> Antenna Array Setup 设置天线阵列的参数时的设计列表如下: 值得注意的是,在该版本中所定义的是:第一个阵元的位置坐标(First Cell Position)、阵元之间的间距(Directions)和阵元的数量(Number of Cells) 这些参数。 在ANSYS中的HFSS仿真中定义天线阵列如下: 与老版本不同的是:中心点坐标(Center Position)和布局设置(Layout Setting)。在布局设置中

Ethan的博客 1万+

计算机组成原理:数据表示与运算全解析,从二进制到浮点数

二进制是计算机硬件唯一能直接理解的语言,而如何用有限的位模式表示正负数、小数和超大数,构成了计算机组成原理中最核心也最易踩坑的知识模块。从原码、反码、补码到移码,每一种编码都对应着硬件加减法、符号判断和溢出处理的不同取舍;补码通过模数思想让加法器无需区分符号,成为定点运算的主流方案。IEEE 754浮点数标准则用符号位、指数偏置和尾数隐藏位,在有限二进制位中模拟科学计数法,支撑起从科学计算到游戏引擎的广泛场景,但同时也带来了0.1+0.2不等于0.3的精度陷阱。掌握这些数据表示与运算规则,是理解存储器、指令

weixin_35761094的博客 303

UR机械臂正逆运动学解析:从DH参数到8组解的完整求解策略

本文深入解析UR机械臂的正逆运动学求解策略,从DH参数原理到完整的8组解求解方法。详细介绍了正运动学的坐标变换过程,以及逆运动学中Atan2函数和三角恒等变换的应用,并揭示了8组解的产生机制。通过实际案例和调试技巧,帮助工程师掌握UR机械臂运动学求解的核心技术。

weixin_29094775的博客 413

C++常见面试题总结

C++常见面试题总结

xu_fu_yong的专栏 8万+

【软件设计师-从小白到大牛】上午题基础篇:第一章 计算机组成与体系结构

软考,软件设计师备考笔记,第一章 计算机组成与体系结构。

你的博客 4849

BQ27220燃料计量芯片与Arduino库kode_bq27220实战指南

燃料计量(Fuel Gauge)是嵌入式电池管理系统的核心技术,通过电压、电流、温度多维建模实现荷电状态(SOC)与健康状态(SOH)的动态估算。其原理基于电化学阻抗补偿算法(如CEDV),区别于简单电压查表法,具备自学习与老化适应能力。该技术显著提升便携设备续航预测精度与低功耗可靠性,广泛应用于TWS耳机、可穿戴设备及医疗电子等场景。本文围绕TI BQ27220高精度燃料计量IC及其配套Arduino库kode_bq27220展开,覆盖硬件连接规范、I²C初始化要点、SOC/SOH实时读取、EDV阈值配置

weixin_35671843的博客 331

软考 软件设计师考点整理:数据的表示

考点1.1、进制的转换 【考法分析】 本考点的基本考法是与内存地址计算、IP地址计算结合考查。 【要点分析】 1、十进制转R进制(短除法); 2、R进制转十进制(按权展开法); 3、二进制转八进制、转十六进制(分组快速转换)。 【备考点拨】 1、掌握二进制数与十进制数的互转,熟练计算IP地址转换; 2、掌握二进制与十六进制的互转,熟练掌握内存地址转换。 考点1.2、原码/反码/补码/移码表示 【考...

MIiss的博客 350

【嘉立创EDA】PCB 多层板如何交换内层,4层板交换板层

本文使用嘉立创EDA,描述如何在PCB设计时,如何交换各个板层,特别是4层板需要交换内层时,应该如何操作,以供有需要的读者参考。

l64481000的博客 2012

YOLOv8剪枝 l1剪枝测试精度仅掉0.8个点,速度提高10.7fps!

文章摘要: 本文提出了一种基于组归一化的重要性评分方法GroupNormImportance,用于神经网络剪枝中的通道选择。该方法支持多种变体,包括标准L1范数、组L1范数和BN缩放因子等计算方式。核心实现包括三个关键部分:1)支持p范数计算(默认为L2);2)提供7种组重要性归约方法(如均值、最大值等);3)提供8种归一化方案(包括标准化、高斯化、LAMP等)。该方法输入一个剪枝组,输出各通道的重要性分数,通过依赖图可实现结构化剪枝。实验对比图展示了剪枝前后的效果差异,验证了该方法的有效性。

FJN110的博客 397

计算机考研408核心考点:原码、反码、补码与移码详解及实战应用

在计算机科学中,数据的机器级表示是理解计算机如何工作的基石。原码、反码、补码和移码是计算机内部表示有符号整数的核心编码方案,其设计原理深刻影响了计算机运算器的设计与程序执行效率。补码技术因其能够统一加减法运算、消除零的歧义表示,成为现代计算机系统表示有符号整数的标准。理解这些编码方案,对于掌握计算机组成原理、进行底层程序调试与优化至关重要。本文聚焦于计算机考研408科目的高频考点,通过结构化图解与真题实战,系统梳理了从原码到补码的转换规则、表示范围、加减运算及溢出判断等核心内容,旨在帮助考生高效攻克这一基础

weixin_34133829的博客 487

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

软考中级软件设计----计算机组成与体系结构----001数据的表示

一、进制的转换 1.1 R进制转十进制 R进制转十进制使用按权展开法,如下: 1.2 十进制转R进制 使用短除法,然后倒序取余,如下: 1.3 二进制转八进制与十六进制 二进制转八进制,三位三位划分 ,如下: 二进制转十六进制,四位四位划分,如下 二、数据表示的编码 2.1 原码 (1)将一个数转换为二进制 (2)最高位为符号位,对于正数,符号位为0,对于负数,符号位为1 2.2 反码 (1)对于正数,反码和原码完全一样 (2)对于负数,反码符号位不变,其他位均取反 2.3 补码 (1)对于正数,补

redrose2100的博客 309

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机组成原理核心:数据表示与运算全解析——补码、浮点数与溢出一次讲透

从进制转换到机器数表示,是理解计算机硬件如何存储与计算的第一步。二进制之所以成为计算机的基石,源于电子器件的物理特性;而原码、反码、补码、移码的设计逻辑,则深刻揭示了硬件如何用加法电路统一处理加减运算。补码加减法、溢出判断和标志位机制,构成了ALU运算部件的核心逻辑。在此基础上,IEEE 754浮点数标准通过阶码与尾数的巧妙布局,解决了定点数范围受限的问题,却也因此带来精度丢失的经典陷阱。这些基础概念不仅是计算机组成原理课程的重点,更是后续学习指令流水线、运算器设计以及排查底层bug的前提。本文系统梳理数据

weixin_30357231的博客 219

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

第1章:计算机组成原理与体系结构

考点1 数据的表示(★★★★) 考点1.1 进制的转换 【考法分析】 本考点的基本考法是与内存地址计算 IP地址计算结合考查。 【要点分析】 1 十进制转R进制(短除法); 2 R进制转十进制(按权展开法); 3 二进制转八进制 转十六进制(分组快速转换)。 【备考点拨】 掌握二进制数与十进制数的互转,熟练计算IP地址转换; 掌握二进制与十六进制的互转,熟练掌握内存地址转换。 ...

apollo_miracle的博客 2070

1.1数据的表示

软考的知识点

HANhylyxy的博客 338

复习日:数据表示 + 校验码(表格对比 + 易错点 + 记忆口诀)

本文为软考中级备考同学整理了数据表示与校验码的核心知识。数据表示部分涵盖原码/反码/补码/移码对比表、定点/浮点区别、进制转换方法及逻辑运算真值表,重点提示补码0的唯一性和IEEE754标准结构。校验码部分对比奇偶校验、CRC和海明码的特性,强调奇偶校验的局限性、CRC模2除法和海明码定位错误原理。文末提供易错点汇总、实用记忆口诀和6道自测题(含答案),帮助快速掌握关键考点。适合5分钟速览复习,配套口诀可强化记忆。

bianyuan172的博客 365

计算机数制转换与编码原理详解

数制转换是计算机科学的基础概念,涉及二进制、八进制、十进制和十六进制之间的相互转换。计算机使用二进制处理信息,而人类习惯十进制,因此数制转换成为人机交互的桥梁。理解补码编码原理对处理负数运算至关重要,它能统一加减法运算并解决零的表示问题。IEEE 754浮点数标准通过科学计数法的二进制实现,解决了实数在计算机中的存储与计算精度问题。这些基础编码技术广泛应用于内存管理、网络通信、图形处理等领域,是软件设计师必须掌握的底层知识。掌握数制转换技巧和编码原理,能够帮助开发者优化程序性能并避免常见的数值计算错误。

weixin_29266007的博客 158

【软考中级】第三节数据表示知识点

1.计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,则应将y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术右移。2.MPEG-I编码器输出视频的数据率大约为1.5Mb/s,PAL制式下其图像亮度信号的分辨率为352×288,帧速为25帧/秒。是通过调整阶码和尾数的数值,使尾数满足特定格式要求的操作,其核心目的是保证浮点数表示的唯一性、最大化尾数精度。两个浮点数进行相加运算时,首先需要对阶(使它们的阶码一致),然后再进行尾数的相加处理。

2301_80048975的博客 379

计算机数据表示与进制转换详解

计算机数据表示是计算机科学的基础概念,所有信息最终都以二进制形式存储和处理。理解进制转换原理(如二进制、十六进制转换)对编程和系统开发至关重要,特别是在处理内存地址、网络协议等场景。补码表示法解决了符号位运算问题,成为现代计算机的标准实现。浮点数遵循IEEE 754标准,但需注意精度问题。实际开发中,数据表示直接影响程序正确性和性能,掌握这些基础知识有助于排查编码乱码、数值溢出等常见问题。

weixin_29224589的博客 199

【软考】《希赛教育·软件设计师考前冲刺与考点分析》计算机硬件基础知识——学习笔记

tests

小哈里的博客 1648
上一篇: MySQL Workbench连接云服务器内网数据库
下一篇: 校验码——奇偶校验/CRC/海明校验
Droy`Z
博客等级 码龄19年 75粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值