计算机组成原理之源码、反码、补码详解及Byte结构

本文基础知识大部分来自于大学学习的 计算机组成原理,计算机科学技术导论等教材
引论
编程语言中,多数都会由byte类型,那byte类型是一个什么样的概念呢,占用字节数为1,为什么值范围是-128~127呢,带着这样的疑问我们进入话题
十进制数 97 和-97对应的二进制 1100001 和 -1100001
在数学中,是将正号“十”和负号“一”放在

本文基础知识大部分来自于大学学习的 计算机组成原理,计算机科学技术导论等教材

引论

编程语言中,多数都会由byte类型,那byte类型是一个什么样的概念呢,占用字节数为1,为什么值范围是-128~127呢,带着这样的疑问我们进入话题

十进制数  97 和-97对应的二进制 1100001 和 -1100001

在数学中,是将正号“十”和负号“一”放在绝对值前面来表示该数是正数还是负数的。而在计算机中则使用符号位来表示正、负数。符号位规定放在数的最前面,并用“0”表示正数,用“1”表示负数。这样,数的符号也数码化了。在计算机中,负数有三种表示方法:原码、反码补码。任何正数的原码、补码和反码的形式完全相同,而负数则有各种不同的表示形式。为区分起见,将原来用一般形式表示的数X称为机器数的真值,而将数在计算机内的各种编码表示称为机器数,根据表示方法的不同分别记为[X]原、[X]反和[X]补等

在由日常数据转换为计算机硬件能够直接识别、处理的机器数时,需要解决三个问题

1. 只能采用二进制数,每位数码非0即1;

2. 将符号位数字化,如用0表示正号,用1表示负号;

3. 采用什么编码方法表示数值。

一、原码、补码、反码

原码

原码表示法约定:让数码序列的最高位为符号位,符号位为0表示该数为正,为1表示该数为负;数码序列的其余部分为有效数值,用二进制数绝对值表示。

97对应的 原码:0 1100001   -97对应的原码:1 1100001 

反码

正数的反码是其本身(等于原码);负数的反码是将原码中除符号位以外的所有位(数值位)取反,也就是 0 变成 1,1 变成 0

97 的 原码和反码都是:0 1100001   

-97 的原码:1 1100001 

-97 的反码:1 0011110

补码

假设 我们用原码进行加减法操作,示例 十进制 -2  对应二进制 1 0000010,十进制 3  对应二进制 0 0000011,正数之间是不会有问题的,但负数相加就会出现一些问题

计算机组成原理之源码、反码、补码详解及Byte结构

 为了克服原码表示法在加、减运算中的缺点,引入了补码表示法,并以此作为加、减运算的基础。引入补码表示法的目的是:让符号位也作为数值的一部分直接参与运算,以简化加、减运算的规则,同时又能化减为加。下面举个例子说明补码的思想:

如 时钟。时钟以12为一个计数循环,在有模运算中称为“以12为模”。13点舍去模12后,就是1点。从0点位置出发,沿反时针方向将时针拨动-1格(即-1点),等同于沿顺时针方向拨动11格(即11点)。换句话说,在以12为模的前提下,-1可以映射为+11。由此我们得到启发:在有模运算中,一个负数可以用一个与它互为补码的正数来代替。

补码示例

计算机组成原理之源码、反码、补码详解及Byte结构

注:数的原码表示形式简单,适合于进行乘除运算,但用原码表示的数进行加减运算比较复杂。引入补码以后,减法运算可以使用加法来实现,且数的符号位也可以当作运算值一样参加运算,因此在计算机中大都采用补码来进行加减运算。

 二、Byte结构

在绝大多数语言中 Byte结构都是 1字节 范围 [-128,127]

这个参考上文讲的 机器数 是计算机里存储的,计算机可以识别的数,所以 Byte 1字节是8位,可以表示的范围是 0000 0000 ~ 1111 1111,注意此处存储的是 原数值的补码

正数部分:正数的补码还是自己,即 0000 0000 ~ 0111 1111 表示范围是 [0,127] , 

负数部分:负数的补码 是该数的原码除负号位外各位取反,然后在最后一位加1,

即 1111 1111 ~ 1000 0000 对应的原值 0000 0000 ~ 1000 0001  即为 [-128,-1]

注意:其实有的时候很难理解 把 1000 0000 转换为 -128,这个原因是 高位被截断,其实他的原码应该是 1 0000 0000 然后取补码得到 1000 0000

 以下为Java代码示例

计算机组成原理之源码、反码、补码详解及Byte结构

到此这篇关于计算机组成原理之源码、反码、补码详解及Byte结构的文章就介绍到这了,更多相关源码、反码、补码详解内容请搜索机圈观察员以前的文章或继续浏览下面的相关文章,希望大家以后多多支持机圈观察员!

本文来自投稿,不代表互联网观察员立场,如若转载,请注明出处:https://www.hlwgcy.com/info/12681.html

(0)
互联网观察员的头像互联网观察员
c盘programdata可以删除吗? 电脑programdata文件夹清理注意事项
上一篇 2026年9月4日 下午5:06
后缀win是什么格式? 超详细的后缀名为win文件打开教程
下一篇 2026年9月4日 下午5:06

相关推荐

  • 标准正确的键盘打字姿势是什么样的?

    各位新学习电脑的朋友,一定要养成正常的打字习惯,不然的话,对以后的影响会很大的。除了健康方面的影响之外,还会有其它方面的影响,比如:打字的时候错别字太多,容易疲劳等。
    标准正确的键盘打字姿势1、屏幕及键盘应该在你的正前方﹐不应该让脖子及手腕在于斜的状态。2、屏幕的中心应比您眼睛的水平低﹐屏幕离眼睛最少要有一个手臂的距离。3、要坐就坐直的﹐不要半坐半躺,不要让您的身体坐为角度不正的姿势。4、大腿应尽

    2026年9月4日
    20
  • 电脑主机响声大怎么办 电脑一直嗡嗡的响怎么解决

    电脑可以说是我们经常会接触到的一种电器,比如玩大型网游、办公等等,都需要电脑来实现。我们在开机使用电脑的时候,电脑里的各种零件运行时是不会发出声响的,如果发出异常声响或者响声比较大的话,就要特别注意了。那么电脑嗡嗡响是怎么一回事呢?电脑一直嗡嗡的响什么原因?
    1、用手感受电脑出风口的温度。如果高温持续,可能有大量程序在电脑后台运行,导致CPU高速运行,产生高热量。风扇必须保持较高的风速才能达到散热

    2026年9月4日
    10
  • 找不到mfc100.dll怎么办? 电脑提示mfc100.dll丢失的修复技巧

    在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到mfc100.dll。这个问题可能是由于缺少相关文件或注册表损坏引起的。下面是我总结的五种解决方法,希望能对遇到这个问题的人有所帮助。一、找不到mfc100.dll什么意思
    找不到mfc100.dll的意思是,在您的Windows操作系统环境中,系统或某款正在尝试运行的应用程序未能在预期的位置找到名为mfc100.dll的重要动态链

    2026年9月4日
    10
  • 超频好吗 电脑超频的好处和坏处介绍

    众所周知,每一个电脑硬件都是有性能限制的,而超频就是能够突破这个限制带来更强的性能,当然这也会有负面收益,那么具体的超频有什么好处和坏处呢。
    超频有什么好处和坏处?
    一、好处
    1、好处最显而易见的,当然就是提高电脑的性能。
    2、无论是cpu还是显卡超频,其目的也是为了增强性能。
    3、直观而言,就是提高电脑的速度,做后期、玩游戏更流畅、更爽快。二、坏处
    1、首先,超频会提升硬件的功耗。
    2、因此,对

    2026年9月4日
    10
  • c盘文件无法保存怎么办? 电脑文档无法保存在C盘根目录的解决办法

    文档无法保存在C盘根目录怎么解决?用户们可以直接的打开本地组策略编辑器然后来直接找到用户帐户控制来进行设置就可以了。下面就让本站来为用户们来仔细的介绍一下吧。
    文档无法保存在C盘根目录的解决办法
    1、打开开始菜单中的运行命令,输入gpedit.msc。2、打开计算机本地组策略编辑器:选择计算机配置- Windows 设置- 安全设置- 本地策略- 安全选项。右侧找到“用户帐户控制:以管

    2026年9月4日
    10

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信