计算机原码、反码、补码、位移码,学习总结:
结合理论与实践记录下来.....
操作规则:
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异或都等于原值。
相关推荐
c++ 计算机底层 原码反码补码的练习题,包括答案
/* *功能实现任意二进制数的原码 反码 补码转换 *仅仅是字符串的操作,没有进行数字操作 *对-0的操作可能有问题 *ssfshine@gmail.com */
原码反码补码讲课.pptx
原码反码补码PPT学习教案.pptx
程序可将不限定位数的原码转成补码和反码,将反码转换成原码和补码,将补码转换成原码和反码,程序基于.NET 4.0,使用VS2012开发工具编写。
原码反码补码图解.原码反码补码图解.原码反码补码图解.
利用C++的MFC实现原码、补码、反码的转换
原码反码补码说课.pptx
计算机数据进制转化(二进制 十进制 八进制 十六进制),以及机器码(原码 反码 补码)。
进制转换及原码反码补码.docx
学习电脑信息原码反码补码详细解析
进制转换+原码反码补码参照.pdf
进制转换及原码反码补码练习题.doc
原码反码补码的定义PPT学习教案.pptx
JAVA基础补充(0)-原码反码补码
此文用于教学给学生看,欢迎专业人士来拍砖指正,避免本人陷于无知而不自知。
16进制(4位)到二进制原码、反码、补码计算
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法.
数字的原码、反码和补码
二进制-原码-补码-反码.pdf