1. 计算机系统的内部以二进制形式存储数据。
  2. 在Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也以二进制来进行数值运算,但返回的结果是十进制。

补码规则

  1. 在计算机系统中,数值一律用二进制的补码来存储。
  2. 二进制的最高位是符号位,0表示正数,1表示负数。
  3. 正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反,再加1。
  4. 两数相加,若最高位(符号位)有进位,则进位被舍弃。
    例如: 4位二进制补码中,5-3的结果是2

(1101)2 //2是二进制的意思
0010 //逐位取反
0011 // 加1
(1101)2 = -3

补码运算的特征

  1. 计算机中正数和负数的关系是取反加一。
    【示例】在四位二进制数中,已知3的二进制值是0011,若要求-3,则
    0011 3
    1100 逐位取反
    1101 +1
  2. 补码运算是封闭的: 运算结果保留在补码范围之内, 超范围就溢出。
    【示例】四位二进制的补码运算中,请计算5+4的结果。
    结果为:-7
  3. 4位二进制补码最多能表示24=16个数,数的范围是-8~7
  4. 8位二进制补码最多能表示28=256个数,数的范围是
    -128~127

补码运算的原理

“正数+负数=模”。
模:某种类型数据的总数,例如:
4位二进制数的模是24=16
8位二进制数的模是28=256

为什么要使用补码?

下面的故事都是我瞎编的~~
计算机专业的人你懂得,大家都不想重复造车轮。搞出来加法电路以后,就在大家一筹莫展想怎么搞个减法的电路的时候,我的女儿(好吧,我没有)拿着一道数学题找到了我,5+(-2)=?,我惊奇的发现,减法和加法之间似乎有着某种py交易。
所以我们是不是可以用加法电路就可以完成减法的运算呢?
每当老师上课的时候提出这种设问,答案往往是肯定的(23333)
咱们首先画个大饼,就是公司画给咱们的那种。

比如5-3=2。我们发现,5往后面退后3个格子就可以得到2这个结果,但是没有注意到的是,5往前面走7个格子也可以得到2这个结果,但是这个7和3有什么必然的联系吗?在这个饼里面他的模是10!3+7=模!
所以5-3=2在计算机的算法就应该是下面的过程:
(-3)2=011
(-3)=001

这里我们舍掉最高位就是结果2。实际上,因为这里是3位二进制数,110对应的10进制数为6,6+2=8,所以其实如果写成4个二进制数,就是
0101+1101=0010 ,8位二进制的话,就是00000101+11111101=10000010结果仍然是2

二进制补码以及为什么要使用补码相关推荐

  1. 正负数二进制表示,正负数二进制移位运算、二进制源码、反码、补码

    源码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. [+1] 的原码 = 0000 0001 [-1] 的原码 = 1000 0001 第一位是符号位. 因为第一位是符号位, ...

  2. c语言中有符号数的补码,[分享]带符号数的表示-----补码

    [分享]带符号数的表示-----补码 补 码 表 示 由于原码表示中0的表示形式的不唯一和原码加减运算的不方便,造成实现原码加减运算的硬件比较复杂.为了简化运算 让符号位也作为数值的一部分参加运算,并 ...

  3. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  4. c语言-20补码多少,C语言 关于补码的几个小知识

    加法器 计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行. 即:减去某个数字(或者说加上某个负数)的运算,都应该研究如何用加法来完成. 模.补数 在日常生活当中,可以看到很多这样的 ...

  5. 模4补码(也称为变形补码)详解

    模4补码又称为变形补码 概念是:用两个二进制位来表示符号位,其余位与补码相同,[例如模2补码的-3为1101,模2用1位,这里是最高位表示符号位,剩下3位是3的补码,同样模4补码表示-3为11_101 ...

  6. 计算机数值类型的数据为什么以补码表示,计算机为什么使用补码来存储数据

    计算机为什么使用补码来存储数据 说明:以下讨论,都是用8位来存储的数据类型:char类型, 为什么?为什么用补码呢?我反复思考着,后来在王爽的汇编语言里和网上找到了答案,有如下总结: 原码表示的数: ...

  7. 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...

    本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...

  8. 关于计算机中二进制原码,反码,补码的简要解释

    原码,补码,反码的概念 正数原码:正数的原码为取绝对值的数转二进制,5的原码为   00000000   00000000   00000000    00000101 负数原码:负数的原码为取绝对值 ...

  9. 二进制 正数 负数 源码反码补码

     二进制的正负数 . HEX (十六进制) EA                        EA Oct(十进制)      有符号                   无符号 -22       ...

最新文章

  1. C# 使用正则表达式去掉字符串中的数字
  2. Android开源项目
  3. C++使用GDI+实现图片格式转换
  4. oracle dg物理和逻辑,Oracle DG 物理Standby环境搭建
  5. requestAnimationFram
  6. B-Suffix Array
  7. 面向多星多任务的大数据处理系统设计
  8. 系统调用被信号打断的例子
  9. 编程范式之命令式与函数式
  10. 5G的To C 应用还是没有和消费者强关联
  11. C语言 pthread_exit
  12. 试题18 四平方和(枚举法)
  13. windows安装node.js和cnpm
  14. nbu备份软件异机恢复需要注意问题
  15. WIN7(32位)VS2010+openCV 2.4.10+PCL 1.6.0+CUDA 6.5.14+CMake 3.2.1+SSBA-3.0配置
  16. 在Mac上安装ie10浏览器
  17. linux c 读取.bin文件
  18. 【数据库】云数据库rds是什么意思?有什么优势?
  19. SQL 的一点简单的面试题求助
  20. 图片抖动的效果(修改后)

热门文章

  1. postman使用之四:设置读取变量和切换环境
  2. Duplicate entry 'xxx' for key 'xxx'
  3. C#使用NPOI导出excel设置单元格背景颜色
  4. Spring Data 开发环境搭建(二)
  5. fshc模块fsch2mcu_if理解
  6. hdu 4421(枚举+2-sat)
  7. 自动驾驶感知-车道线系列(一)——车道线基础流程实现
  8. ImportError: No module named cv2问题的解决方法(修改python默认版本)
  9. 【学习OpenCV4】滚动条Trackbar的创建与使用详解
  10. mysql存储过程 begin_MySQL存储过程的BEGIN和END