好吧,小编虽然上个C++语言和VB语言基础,虽然那个爱笑的从国外留学回来的老师讲课很好很精彩,但无奈小编跟不上呀。所以下面是学习啦小编给大家总结的八位二进制补码最小值和二进制补码知识点。

八位二进制补码最小值

8位二进制补码表示整数的最小值是 -128, 最大值是 +127.

原因:正数的补码就是其本身,8位二进制最大正整数是 0111111,也就是十进制值 127。

负数的补码是它原数的反码加1,最小值,就是负得最多的数,

即二进制 1000 0000。十进制-128。

推导: -128 =(-1)+(-127) = 原码 1000 0001+原码 1111 1111 =

补码 1111 1111 + 补码 1000 0001 = 补码 1000 0000。

什么是二进制的补码?

注明:正数的补码与负数的补码一致,负数的补码符号位为1,这位1即是符号位也是数值位,然后加1

补码借鉴的模概念,虽然理解起来有点晦涩难懂。可以跳过

模的概念:把一个计量单位称之为模或模数。例如,时钟是以12进制进行计数循环的,即以12为模。

在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。10和2对模12而言互为补数。同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为16),因此它的运算也是一种模运算。当计数器计满16位也就是65536个数后会产生溢出,又从头开始计数。产生溢出的量就是计数器的模,显然,16位二进制数,它的模数为2^16=65536。在计算中,两个互补的数称为“补码”。比如一个有符号8位的数可以表示256个数据,最大数是0 1 1 1 1 1 1 1(+127),最小数1 0 0 0 0 0 0 0 (-128);那么第255个数据,加2和减254都是一样的效果得出的结果是第一个数据 ,所以2和254是一样的效果。对于255来说2和254是互补的数。

求一个正数对应补码是一种数值的转换方法,要分二步完成:

第一步,每一个二进制位都取相反值,即取得反码;0变成1,1变成0。比如,00001000的反码就是11110111。

第二步,将上一步得到的反码加1。11110111就变成11111000。所以,00001000的二进制补码就是11111000。也就是说,-8在计算机(8位机)中就是用11111000表示。

不知道你怎么看,反正我觉得很奇怪,为什么要采用这么麻烦的方式表示负数,更直觉的方式难道不好吗?

二进制补码的好处

首先,要明确一点。计算机内部用什么方式表示负数,其实是无所谓的。只要能够保持一一对应的关系,就可以用任意方式表示负数。所以,既然可以任意选择,那么理应选择一种用的爽直观方便的方式。

二进制的补码就是最方便的方式。它的便利体现在,所有的加法运算可以使用同一种电路完成。

还是以-8作为例子。假定有两种表示方法。一种是直觉表示法,即10001000;另一种是2的补码表示法,即11111000。请问哪一种表示法在加法运算中更方便?随便写一个计算式,16 + (-8) = ?16的二进制表示是 00010000,所以用直觉表示法,加法就要写成:

00010000

+10001000原码形式-8

---------

10011000

可以看到,如果按照正常的加法规则,就会得到10011000的结果,转成十进制就是-24。显然,这是错误的答案。也就是说,在这种情况下,正常的加法规则不适用于正数与负数的加法,因此必须制定两套运算规则,一套用于正数加正数,还有一套用于正数加负数。从电路上说,就是必须为加法运算做两种电路。所以用原码表示负数是不行的。

现在,再来看二进制的补码表示法。

00010000

+11111000补码形式-8

---------

100001000

可以看到,按照正常的加法规则,得到的结果是100001000。注意,这是一个9位的二进制数。我们已经假定这是一台8位机,因此最高的第9位是一个溢出位,会被自动舍去。所以,结果就变成了00001000,转成十进制正好是8,也就是16 + (-8) 的正确答案。这说明了,2的补码表示法可以将加法运算规则,扩展到整个整数集,从而用一套电路就可以实现全部整数的加法。(特别说明,有部分素材来自博主JQ_AK47)

八位计算机最小二进制,八位二进制补码最小值相关推荐

  1. 二十一、补码 (计算机最小的单位为位)

    正数的补码为原数 负数的补码为取反后加1 注:-25补码为 11100111,负号前全部补1 1. 补码 计算机最小的单位是位 计算机中的数是用二进制来表示的,数的符号也是用二进制表示的. 多数计算机 ...

  2. 计算机编码二进制0001,二进制学习01(二进制,进制运算,数据宽度,无符号位有符号位编码规则)...

    二进制学习01 进制 一.二进制简介 1)什么是二进制? 2)二进制的简写形式 二.进制运算 1)八进制运算表 (1) 加法运算表 (2)乘法运算表 (3)八进制简单运算题 三.数据宽度 1)什么是数 ...

  3. 计算机基础- -计算机为什么要使用二进制

    计算机基础- -计算机为什么要使用二进制 文章目录 计算机基础- -计算机为什么要使用二进制 一.为什么用二进制表示 二.什么是二进制数 三.移位运算和乘除的关系 四.便于计算机处理的补数 五.算数右 ...

  4. python小技巧:求32位二进制负数的补码,附剑指offer中的应用

    实现方法: 先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码: def func(n):if n<0:n=n&0xffffff ...

  5. 二进制负数的补码为什么是符号位不变,其他位取反加一?

    今天看了<逻辑设计基础>才明白了为什么二进制负数的补码是符号位不变,其他位取反加一 1. 什么是补码? 补码:计算机是用来将减法转换成加法的一种手段,在计算机系统中,数值一律用补码来表示和 ...

  6. [数制与码制]: 有关十进制转换和二进制负数小数补码表示

    文章目录 关于十进制转换 关于二进制负小数补码表示 关于十进制转换 数电第一课,关于各进制数的转换:2,8,16进制的转换也不用说什么,主要是关于10进制转换其他进制会麻烦一点: 而在这之间,由其他进 ...

  7. 计算机 二进制 中国,二进制与计算机

    二进制与计算机事物的多少或者顺序,我们可以用一种称为"数"的符号来表示.事物的数量是无穷的,我们却不可能创造无数个符号.为了解决这个难题,人们创造了进位制(又叫做位值制),这样就可 ...

  8. 计算机与十进制 教案,二进制与十进制间的转换教案

    十进制与二进制间的转换 [教学目的与要求] 1.熟悉数制的概念:2.掌握位权表示法: 3.熟练掌握各数制之间的转换方法. [课时安排] 1课时. [教学重点与难点] 1.难点:位权表示法 十进制转化为 ...

  9. 科学计算机二进制算法,计算机是怎么理解二进制的?

    计算机是怎么理解二进制的? 计算机的发明最初纯粹是为了计算数字, 让一个机器能够通过输入不同的数字, 进行加减乘除等. 首先要约定好机器能处理的数是什么样的, 即输入是什么样的, 才能去制造计算机. ...

最新文章

  1. java编写代码时易出错_归纳:编写Java程序最容易犯的21种错误
  2. Python 技术篇-win32、amd64结尾的whl库该选哪个,如何查看python平台支持
  3. 如何用Python实现八大排序算法
  4. 2021-03-09 PPT字号设置规则和图片网站(from 旁门左道)
  5. Android复习09【内容提供者、音乐播放器(附完整工程文件)】
  6. windows自带的压缩,解压缩命令
  7. c++随机打乱数组_【洗牌算法】你确定这样的抽奖算法是随机的?
  8. 执行完execute和update后存储过程变成invalid_学会反射后,我被面试官录取了(干货)
  9. mysql初始化很慢_mysql初始化报错
  10. ES6-类-ES6新增的类的概念
  11. java 时间类型添加_java date类型 怎么 插入 时间 到 数据库
  12. 大屏震撼!三星Galaxy Note20+屏幕或突破7英寸
  13. jquery validate 笔记
  14. Android开发之旅-Fragment和Activity之间onCreateOptionsMenu的联系
  15. 使用复合数据类型——PL/SQL记录表
  16. python3两个三阶矩阵相乘_矩阵相乘的实现-python
  17. 火水风四种元素平衡 ABCD四个相等
  18. WARNING: --master-data is deprecated and will be removed in a future version
  19. 2021-07-02-MySQL必知必会-笔记
  20. 一场云端的“神仙打架”:BAT加华为的影响未来之争

热门文章

  1. 如何输入带空格的字符串
  2. ZigBee的软件抓包分析
  3. html中头向下的箭头怎么打出来,向下的箭头怎么打,最简单实用的电脑知识
  4. 毕业设计-基于机器学习的短期负荷预测算法
  5. Visio调整背景大小
  6. 你需要但是找不到的网站,其实不太想分享,有你想要想收藏的
  7. 计算机页面排版的笔记,推荐6种简单实用的手绘笔记排版
  8. mysql手机号以135开头_135开头的手机号属于联通还是移动?
  9. 华为交换机难点学习:导出配置文件/同步时间
  10. 03-MySQL:DBeaver 客户端使用