计算机是以补码的方式进行存储数据的。一般补码是通过:原码→反码→补码的转换求得。

注:1.此篇以8位二进制为例讲解,即byte类型。

2.byte所占位数8位,取值范围为(-2)^7 ~ 2^7-1  or  -128~127。

3.此篇都为十进制转二进制。

先了解一些概念:

-符号位:二进制数的最高位,表示数的正负。(0表示值为正,1表示值为负。)

-数值位:符号位后面的几位。(所以8位二进制所用的数值位只有7位。)

例:

20的原码:0010100,此处蓝色的0为符号位,即值为正;后面的7位红色数为数值位。

-20的原码:1 0010100。此处蓝色的1为符号位,即值为负;后面的7位红色数为数值位。

一、正数的原码,反码,补码。

以66为例。

原码:0 1000010

反码:0 1000010

补码:0 1000010

即:正数的原码,反码,补码是一样的。

二、负数的原码,反码,补码。(转换中符号位都不变)

原码→补码的快速转换 。(一般记住原码转补码就行,但是在考试中可能会考反码。)

在原码中,符号位不变,从 右 往 左 找第一个1,这个1左边(紫色)取反,右边(蓝色)不变。

-66的原码:1 1000010

-66的补码:1 0111110

-16的原码:1 0010000

-16的补码:1 1110000

1.负数的原码→反码。

在原码中,符号位不变,数值位按位取反。

-66的原码:1 1000010

-66的反码:1 0111101

-16的原码:1 0010000

-16的反码:1 1101111

2.负数的反码→补码。

在反码中,符号位不变,末位+1。

-66的反码:1 0111101

-66的补码:1 0111110

-16的反码:1 1101111

-16的补码:1 1110000

总结:

正数的原码,反码,补码是一样的。

负数:以-22为例。

原码 1 0010110

反码 1 1101001 //在原码的基础上,符号位不变,数值位按位取反。

补码 1 1101010 //在反码的基础上,符号位不变,末位+1。

原码→补码的快速转换:

原码 1 0010110

补码 1 1101010 //在原码中,符号位不变,从右往左 找第一个1,这个1左边取反,右边不变。

原码、反码、补码的转换。相关推荐

  1. Debug和release版本区别 原码反码补码的转换及存储

    #define _CRT_SECURE_NO_WARNINGS 1  //Debug和release版本区别(VS2019版) //例子 #include<stdio.h> //int m ...

  2. 【实验作业】微处理器原理与应用 CPUHomework2.1【二进制 原码 反码 补码 数制转换 典型例题】

    一.选择题 1.一个四位二进制补码的表示范围是(B) A.0-15 B.-8-7 C.-7-7 D.-7-8 2.十进制数- 48 用补码表示为(B) A.10110000 B.11010000 C. ...

  3. 原码 反码 补码的相互转换

    原码 反码 补码的相互转换 原码 反码 补码的转换 还是比较 简单基础的问题.之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了. ...

  4. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

  5. 数制和码制(数制的转换的方法,BCD码<8421,2421,5421,余三码>,格雷码,原码,反码,补码,定点数和浮点数)

    目录 1.数制的转换 1)二,八,十六进制进制转十进制 加权系数求和法 2)十进制转二,八,十六进制 除基取余法(短除法) 减权定位法 3)二,八,十六进制的相互转换 2.BCD码 3.格雷码 4.原 ...

  6. day017:Java进制转换、原码反码补码、位运算、位移运算符

    一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...

  7. 【计算机组成原理】原码 反码 补码 移码的转换

    原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...

  8. 原码 反码 补码 之间在小数正数间的转换

    原码 反码 补码 之间在小数正数间的转换 基本转换 对于正数 原码等于反码等于补码(小数也一样) 对于负数 原码除了符号位取反即反码 反码基础之上+1即补码 但是在遇到某些题时候还是会混淆,比如三者在 ...

  9. Java进制转换、原码反码补码

    一.负数的表示 最高位(最左侧的位)是用来表示正负的.0代表的整数,1代表负数.最高位称为符号位. 0b0000 1000 所表示的数字是 8 0b1000 1000 所表示的数字是 -8 二.原码反 ...

  10. 原码反码补码之间运算转换

    1. 正数的原码=反码=补码 2. 负数的反码=在其原码的基础上, 符号位不变,其余各个位取反 负数的补码=在反码的基础上+1 负数的补码=在原码的基础上, 符号位不变, 其余各位取反, 最后末位+ ...

最新文章

  1. Matlab出现未定义与‘char’类型的输入参数想对应的函数‘xxx‘
  2. python在数据分析方面的应用、下列说法正确_智慧树知到大数据分析的python基础答案...
  3. 太强了,头发丝完整保留!华盛顿大学研究员开源的实时视频抠图工具
  4. 安装python3.8出现ModuleNotFoundError: No module named ‘_ctypes’解决办法
  5. 并查集 --算法竞赛专题解析(3)
  6. Gym - 101635J - Frosting on the Cake
  7. 多线程编译与运行linux,Linux系统下多线程程序编译makefile文件
  8. VBA程序升级,vba在线更新
  9. java_Stream流和Optional
  10. 2020-11-30
  11. Sublime配置java运行环境(IntelliJ IDEA也许更好用)
  12. 确认!贾扬清加盟阿里,任技术副总裁
  13. 台大林轩田·机器学习技法记要
  14. resultType和parameterType的基本使用和区别
  15. 用Tera Term取代Windows上的超级终端
  16. 校内互测 B. 王者荣耀 (二分答案+dp)
  17. 阿里云短信验证码签名模板创建方法
  18. 矩阵论: 第二章: 内积空间
  19. 云服务器饥荒_阿里云搭建饥荒专用服务器
  20. 如何打开查看网页html源码

热门文章

  1. Extjs4 动态更改Store里面的内容
  2. Mysql索引数据结构
  3. 毛孔堵塞怎么办?教你疏通小窍门
  4. 计算机用户自动退出,电脑中移动热点会自动关闭是怎么回事
  5. 网站地址栏的图标代码
  6. 减号,破折号在idea中是有区别的(在开发过程中遇到的坑)
  7. Sapphire 手机连接打印机控件Sapphire IrDA Utility龙博方案网详细介绍
  8. COPU陆首群教授应邀在开放原子全球开源峰会上做主旨演讲
  9. python内存泄露问题定位:附带解决pyrasite timed out
  10. OpenCV双边滤波bilateralFilter去除脸部雀斑