`
oboaix
  • 浏览: 275381 次
社区版块
存档分类
最新评论

计算机原码、反码、补码、位移码

    博客分类:
  • JAVA
 
阅读更多

计算机原码、反码、补码、位移码,学习总结:

结合理论与实践记录下来.....

 

操作规则:

A、负数变二进制

原码,取反值,再加上1。

 

B、负数二进制变回实际值(由第一位确定是否为负数)

整体减1,再取反,再乘以-1.

 

eg:

//从十六进制到负数   0xFFFFFFFa ===>> 6
//整体减1,再取反,再乘以-1.
//1111 1010 --> 1111 1001 --> 0000 0110 --> -6

--------------------------------------------------------------------

///原码,加上1,再取反值。-6 ===>> 0xFFFFFFFa
//从负数到十六进制
//0000 0110 --> 0000 0111 --> 1111 1000 --> 0xFFFFFFFa

 

-6  补码
00000110
11111001
+      1
--------
11111010


-10  补码
00001010
11110101
+      1
--------
11110110


32+ 1 + 2+ 4 + 8
//////////////// 
-15   补码
0000 1111
1111 0000
+       1
---------
1111 0001   字节
FFFFFFF1    双字节

////////////////
-1   补码
00000001
11111110
+      1
--------
11111111
FFFFFFFF

从FFFFFFF1找出实际值,首先拿到最后两位
11110001
-      1
--------
11110000
00001111
--------
      15
    * -1
---------
      -15

 

计算机是以补码的形式表示数值型数据的。
正数的原码、反码、补码都是一样的。
负数的原码和和它的绝对值所对应的原码相同,简单的说就是绝对值相同的数原码相同;
反码就是再逐个取反,补码就是在这个反码的基础上再次加1,即就是计算机存储形式补码。

其实反码、补码的提出就是针对负数的,跟正数屁关系没有。
也许只是为了统一一下说法“计算机都是以补码的形式表示数据的”,
不然就得说正数是用原码表示,负数时用补码表示。 

补码。负数在计算机中的表示步骤:原码——反码(符号位不变)——补码(加1)。
由补码计算出负数真值的方法有两种。
一是,补码减1——取反(符号位不变)——原码;二是,补码——取反后加1——原码。所有的取反都不涉及符号位。


正数就是按照实际计算;
负数就是按照位置位取反,再加1,做进位计算。

总结一下
计算机储存有符号的整数时,是用该整数的补码进行储存的,
0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。

对于负数二进制回到十进制刚好使用相反的计算法则:
整体减1,再取反,再乘以-1.


十进制 → 二进制  (怎么算?要是不知道看计算机基础的书去) 
47   → 101111 

有符号的整数   原码    反码    补码 
  47      00101111  00101111  00101111(正数补码和原码、反码相同,不能从字面理解。计算机保存形式00101111) 
 -47      10101111  11010000  11010001(负数补码是在反码上加1,计算机保存形式就是补码11010001) 

 

负数原码:

符号位1 + 绝对值的本身

举例: -7的原码: 10000111    +7的原码: 00000111

+0 的原码:00000000  -0的原码:10000000

+0的反码: 00000000  -0的反码:11111111

 

& 与。    全1为1, 有0为0。  任何数与0与都等于0。           

| 或。      有1为1, 全0为0。  任何数与0或都等于原值。         

~ 非。     逐位取反         

^ 异或。  相同为0,相异为1。      任何数与0异或都等于原值。

 

 

 

分享到:
评论

相关推荐

    原码、反码、补码、位移全总结,无遗漏,含示例

    看懂了这个三分钟文档,想不学会计算机组成原理里面的位移操作都难

    计算机组成原理与系统结构课后作业答案(包健_冯建文章复嘉版).pdf

    例如,X=-25/64,[X]浮=0,11111 1.11001,其中0,11111是阶码(6位移码),1.11001是尾数(6位原码)。 - **浮点数运算**:如[X]补=0.1101000,[2X]补=溢出,表示对X进行乘2操作可能导致溢出。 4. **补码Booth...

    模拟一位原码乘法

    对于整数而言,可以采用原码、反码或补码等多种方式表示。原码是指正数的符号位为0,负数的符号位为1,其余部分与数值的绝对值相同。一位原码乘法是指利用两个一位原码表示的二进制数进行乘法运算的方法。 ### 代码...

    对口单招计算机原理计算专题练习.pdf

    本文主要涉及计算机基础知识,包括数制转换、汉字编码以及原码、反码、补码的计算。 1. **数制转换** - 十六进制数到十进制的转换:例如,十六进制的1000转换为十进制是4096。 - 十进制数到二进制的转换:例如,...

    中央电大2010计算机组成原理A形考作业及答案.pdf

    浮点数表示的大小受限于阶码和尾数的位数,例如,4位移码阶码和8位原码尾数可以表示特定范围的正负数。 5. 奇偶校验码和海明校验码是两种错误检测方法。奇偶校验码通过添加一个校验位保证码字中1的个数为奇数或偶数...

    计算机组成原理第六章答案.doc

    例如,32位浮点数,阶码7位移码,尾数23位原码,最大正数的阶码全1,尾数全0;最小正数阶码全0,尾数非0;最大负数阶码全1,尾数全1;最小负数阶码全0,尾数全1。 5. **浮点数转换**:浮点数转换为规格化形式,需要...

    国家开放大学-计算机组成原理-形考任务-2017全部答案.doc

    - 题目4和5分别给出了原码、补码和移码的转换,原码转反码是按位取反,不包括符号位;原码转补码是将除了符号位外的所有位加1;原码转移码是将所有位加1,再将符号位取反。 3. 多项选择题: - 题目7和8涉及了不同...

    电大本科计算机组成原理习题与答案

    题目中提到的4位移码阶码和8位原码尾数,可以表示的最大最小值需要根据规格化和符号位来计算。 - 题目中的X和Y的浮点表示需要确定阶码和尾数的正负以及相应的位移。例如,X的浮点表示为1 011 0 0110011,Y的表示为0...

    2022年电大本科计算机组成原理形成性考核册答案.doc

    在题目中,浮点数的阶码使用4位移码表示,尾数使用8位原码表示。最大和最小值取决于符号和数值的组合。例如,最大的正数是1111 0111 1111111,最小的正数是0001 0000 0000000。浮点数的运算如加法和乘法涉及到对阶、...

    中央电大2021计算机组成原理A形考作业及答案分享.pdf

    例如,4位移码阶码和8位原码尾数时,可以表示特定范围内的正负数。 10. 数据转换:十六进制、二进制和八进制之间的转换是常见的计算机基础知识,14.4CH在不同进制下的表示为(10100.01001100)2,(14.23)8,(20.21875...

    计算机组成原理-第8周 数据表示.pptx

    移码的符号位与补码相反,对于n位移码,最小的正数是2^(n-1),最大的负数是-2^(n-1)-1。 4. 浮点数:浮点数的表示由三部分组成:符号位、指数(阶码)和尾数( Mantissa)。浮点数的一般形式是N = S × r^j,其中S...

    计算机组成原理作业.pdf

    《计算机组成原理》涉及到计算机内部数据的表示和计算方法,主要涵盖了原码、补码、反码的概念,以及定点数和浮点数的格式。在计算机中,数据以二进制形式存在,不同的编码方式对数值的表示和运算有着直接影响。 1....

    21世纪数字逻辑习题及答案

    - 原码、反码和补码是二进制表示正负数的不同方式,如题目中所示,它们用于表示有符号数,尤其是在计算机存储和运算中。 - 例如,对于-10110,其原码为110110,反码为101001,补码为101010。 5. **浮点数的编码**...

    按照大纲的知识点整理----计算机组成原理

    - 真值与机器数:真值带有符号,机器数是数字化的表示,包括原码、反码、补码和移码。 - BCD码:用于表示十进制数的二进制编码。 - 字符与字符串:ASCII码和其他字符编码标准。 - 校验码:如奇偶校验码、CRC校验...

    计算机的机器数表示及运算(微机原理接口技术习题解答)

    在计算机科学中,我们主要讨论四种机器数表示方法:原码、反码、补码和移码,以及浮点数编码。这些概念对于理解计算机内部的数值运算至关重要。 **原码**是最直观的数字表示方式,它的每一位直接对应一个数字的二...

    计算机组成原理课后参考答案.pdf

    9BH在原码、补码、反码、移码和无符号数中的十进制值分别是-27、-101、-100、+27和155,而FFH对应的十进制值分别是-127、-1、-0、+127和255。注意,移码是将原码的符号位取反,所以正数在移码中总是非零的,负数的...

    java byte相互转换详解左右位移

    在Java中,基本数据类型byte与int之间的相互转换涉及到计算机的二进制运算、位移操作以及补码的概念。我们首先了解Java中int和byte的数据结构,然后探讨它们之间的转换方法及其背后的原理。 **基本数据类型结构:**...

    计算机实习实验报告.doc

    在计算机系统中,数据通常以二进制形式存在,而原码、反码、补码和移码是四种常见的表示方法,它们在处理正负数值时有各自的特点。 1. 原码:原码是最直观的二进制表示,最高位作为符号位,0代表正,1代表负。对于...

    组成原理课程设计(实现机器数的真值还原等功能)

    定点小数是指小数点固定不变的二进制数,可以是原码、反码或补码形式。补码是用于表示负数的一种方式,它通过取反加1得到。在单符号位系统中,最高位代表正负。加减运算时,需要考虑符号位的处理,相同符号的数相加...

Global site tag (gtag.js) - Google Analytics