原码、反码、补码之间的快速转换和简单运算

现在很多人都在学习计算机语言,那么原码、反码、补码之间的快速转换和简单运算是怎么样的呢?今天小编为大家讲讲具体的方法,希望能够对大家有所帮助。

正数部分:

正整数的原码、反码和补码是一样的,即看到符号位(第一位)是0,就可以照着写出其他两种码。

负数部分转换:

原码和反码的相互转换:符号位不变,数值位按位取反

原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1

已知补码,求原码的负数的补码:符号位和数值位都取反,末位再加1

负数部分具体情况:

1)     原码转换为反码:符号位不变,数值位分别“按位取反”

2)    反码转换为原码也是一样:符号位不变,数值位分别“按位取反”

3)     原码转换为补码:符号位不变,数值位按位取反,末位再加1

4)    补码转换为原码:符号位不变,数值位按位取反,末位再加1。

即补码的补码等于原码

5)    求补(变补),即已知[X]补,求[-X]补 。

符号位和数值位都取反,末位再加1

原文地址:https://www.cnblogs.com/niuyaomin/p/11967168.html

时间: 2024-11-06 10:46:12

原码、反码、补码之间的快速转换和简单运算的相关文章

02进制_原码反码补码

###02.03_Java语言基础(不同进制数据的表现形式)(掌握)* A:二进制的数据表现形式 * 由0,1组成.以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)* B:八进制的数据表现形式 * 由0,1,-7组成.以0开头* C:十进制的数据表现形式 * 由0,1,-9组成.整数默认是十进制的 * D:十六进制的数据表现形式 * 由0,1,-9,a,b,c,d,e,f(大小写均可).以0x开头 * E:案例演示 * 输出不同进制表现100的数据. * 0b100 * 0

<13>【了解】计算机中的进制+【理解】原码反码补码基本概念+【理解】为什么要引入反码、补码?+【掌握】位运算符介绍及使用+位运算应用:编程实现10进制转2进制

1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 5 //定义10进制数,打印出10.8.16进制的值 6 int a = 13; 7 printf("%d\n",a); 8 printf("%o\n",a); 9 printf("%x\n",a); 10 11 //int 64 4个字节 12 int b = 0b0000000000000000

原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

[转]原码, 反码, 补码 详解 很全

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

关于原码, 反码, 补码的复习

原本大一时考试90+的组成原理,隔了太长时间没使用,概念也慢慢模糊了,由于最近考试的基础知识有可能用到,于是,在网上找些资料,整理成这个文章,方便以后某天回来看看,好记性真不如烂笔头. 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如

原码 反码 补码 以及 为什么要使用原码反码补码

原始博文网址,无意侵权,只是想记下来以后复习的时候方便, http://www.cnblogs.com/cumtchw/p/4523332.html http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1,比如,十进制中的+3,假设计算机字长为8位,转换成二进制就是0000 0

[C++基础]原码/反码/补码、二进制位运算

原码/反码/补码 编码 定义 实例 原码 最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. [+100]原=01100100 [+0]原=00000000 [-100]原=11100100 [-0]原=10000000注意:在原码中,零有两种表示形式. 反码 正数的反码与其原码相同:负数的反码是对其原码逐位取反,但符号位除外. [+100]反=01100100 [+0]反=00000000 [-100]反=10011011[-0]反=1111111

详解 原码, 反码, 补码

本篇文章讲解了计算机的原码, 反码和补码. 并且深入探求了为何要使用反码和补码, 以及更进一步论证了为何可以用反码和补码的加法计算原码的减法. 论证部分如有错误请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机中用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位

[转载]原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计