原码、反码、补码,以及负数的位操作
1、
原码:将符号位数码化了的数,其中“+”用0表示,“-”用1表示。
反码:正数的反码表示与原码表示一样;负数的反码表示是原码表示的符号位不变,数值位逐位取反。
补码:正数的补码表示与原码表示一样;负数的补码表示是原码表示的符号位不变,数值位逐位取反后最低位加1(反码表示最低位加1)。
例:(假如以八位二进制表示)
[+63] 原=0011 1111 反=0011 1111 补=0011 1111
[-63] 原=1011 1111 反=1100 0000 补=1100 0001
2、负数的位操作(以与为例)
(1)计算机中,无论正数还是负数,都是以其补码形式存储的;
(2)如果位操作后的结果最高位为“1”,说明它是负数的补码,转化为实际的整数时要逆操作,即-1(减一)后保持最高位不变再取反。
(3)一个数(如b)的相反数(-b)的补码,等于该数的补码取反,然后加1。
比如:
-5 原码=1000 0101 反码=1111 1010 补码=1111 1011
5 原码=0000 0101 反码=0000 0101 补码=0000 0101
可以进一步发现,-5 & 5 = 0000 0001,同理 -6 & 6 = 0000 0010,-7 & 7 =0000 0001……
这是一个很有用的性质,即返回(某个数的绝对值,如-6的绝对值是6)的(二进制表示的,6的二进制表示是0000 0110)从右往左第一个为1(第一位为1)的所表示的整数(0000 0010)。
原码、反码、补码,以及负数的位操作相关推荐
- 原码反码补码之间运算转换
1. 正数的原码=反码=补码 2. 负数的反码=在其原码的基础上, 符号位不变,其余各个位取反 负数的补码=在反码的基础上+1 负数的补码=在原码的基础上, 符号位不变, 其余各位取反, 最后末位+ ...
- C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出
1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 原码, 反码, 补码, 移码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 关于 原码 反码 补码 位运算
二进制 原码:最高位为符号位,0为正 1为负 正数的原码 反码 补码 都是相同的 反码:负数的反码为原码符号位不变 其它对应变化(1变0 0变1) 补码:等于 反码+1 3^-3 =? 运算过程 - ...
- 10.原码 反码 补码
+7的原码:0000 0111 -7的原码:1000 0111 第一位0代表正数,1代表负数,第一位为符号位 +7的反码:0000 0111 正数反码和原码一样 -7的反码:1111 1000 ...
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
- 原码 反码 补码 详解
一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
- 原码 反码 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
最新文章
- 迭代器报“vector iterators incompatible”错的几种可能
- matlab 小波滤波器系数导出函数,小波基函数和滤波系数.ppt
- 编程思考:对象生命周期的问题
- java swing游戏_Java Swing井字游戏
- 为什么我不看好PWA
- 19. 顺时针打印矩阵
- android Fragment缓存问题
- 收集的Word2007技巧大全
- Horizontalscrollview
- python实现滚动截屏功能
- DBUtils工具类的使用方法详解
- 这个“单”到底应该谁来买?
- 一名蒟蒻OIer(或许还算不上?)的NOI_Online2022的日录
- 23.卷积神经网络实战-ResNet
- 高效通过,PMI-ACP 备考知识突击(九阴真经版)
- 2020年第十一届蓝桥杯A组省赛
- Spring/Boot/Cloud系列知识:SpringMVC进行HTTP信息接收和发送的过程(1)
- 清华计算机系2018录取分数线,2018年清华大学各省录取分数线是多少?看看你离清华大学差多少分...
- 除了菊纹识别,AI还有哪些奇奇怪怪的识别能力?
- 2022年乡村医生考试复习题及答案