首先要知道的是计算机中补码的表示是唯一且连续的!我想这是计算机为什么不用原码来表示的一个原因!另外,以补码形式来运算的话,设计的逻辑电路会简单很多,会少很多逻辑运算器件,所以计算机采用补码的形式来运算。

比如说:0的原码有两种

+0 = 00000000 00000000;

-0 = 10000000 00000000;

而补码只有一种:00000000 00000000;

怎么求补码呢!最简单的是符号位不变其他位换号再加1;注意:加1的时候符号位参与运算,如果最高位有溢出则舍去!

例: - 0的补码:

原码:10000000 00000000

符号位不变其他位换号:11111111 1111111

加1:
11111111 11111111

+00000000 00000001

= (1)00000000 00000000

(1)被舍去。

我们知道,16位二进制数可以表现2的16次方个编码,而在补码中零的编码只有一个,也就是补码中会比原码多一个编码出来,这个编码就是1000000000000000,因为任何一个原码都不可能在转成补码时酿成1000000000000000。

所以,人为规定1000000000000000这个补码编码为 - 32768。所以,补码系统中,范围是 - 32768~32767。

因此,实际上,二进制的最小数确实是1111111111111111,只是二进制补码的最小值才是1000000000000000,而补码的1111111111111111是二进制值的 - 1。

而 - 32768的补码:因为16位的话,在计算机中 - 32768不能用原码表示出来。所以只能通过 - 32767 - 1来求:

-1的补码为11111111 11111111

-32767的补码为10000000 00000001
所以加起来为:(1)1000000 00000000 (1)被舍去了。
又因为10000000 0000000没有用来表示其他任何数,所以10000000 00000000就被用来表示 - 32768,这也验证了补码的唯一性和连续性!而且这也证明了16位的整数的范围是“ - 32768~32767”。不过16位整数的原码的范围只有:“ - 32767~32767”。

关于-32768补码的问题相关推荐

  1. 关于-32768的补码!

    这个问题困扰我一天了,现在终于有点小悟了. 首先要知道的是计算机中补码的表示是唯一且连续的!我想这是计算机为什么不用原码来表示的一个原因!比如说:0的原码有两种,+0=00000000 0000000 ...

  2. 原码、反码、补码问题以及-32768~+32767问题

    原码.反码.补码问题以及-32768~+32767问题 1. 原码.反码.补码问题  在C语言中,对于有符号整形数,原码的最高位为符号位,符号位为0表示正数,符号位为1表示负数,仅用原码来表示数是没有 ...

  3. 从1的补码说起计算机的数制

    字节换算 bit(b)=位 字节(byte)=8位 -128~127 0-255 半字=2字节=16位 -32768~32767 0-65,535 字(word)=4字节=32位 -214748384 ...

  4. 有符号类型的最小负数的补码的由来

    有符号类型的最小负数的补码的由来 一. 16位的有符号整数(int) 在计算机中是用补码存储数据 为什么不用原码存 就是因为原码表示不了最小值-32768 如果是原码表示的话,编码中+0是用16个0表 ...

  5. 这样给学妹讲原码、反码、补码,帮她彻底解决困扰了三天的问题

    前言 补码是给机器看的,原码是给人看的,反码是二者的桥梁,原码反码补码虽然是简单问题,但确实很多人很长时间没有搞明白和深入思考,这篇把自己学习和理解过程记录下来,刚好一个学妹问到这个问题.本篇只讲原码 ...

  6. IOS笔记-计算机中的进制 反码补码 和存储细节

    1.计算机中的进制 计算机能够识别的只有二进制 0.1 进制就是一种计量的单位 2.常见的进制: 二进制:逢二进一  用0.1来表示,定义一个二进制的数:0b 或者 0B  ,0B1010(2)=10 ...

  7. c或c++语言什么时候用补码来运算,C/C++(基础编码-补码详解)

    两个数的交换 1.引入第三者. 2.求和运算,求差.(这样会产生内存溢出) 3.异或运算 a = a^b; b = a^b; a = a^b; 8b(bit位) = 1B(Byte=字节)//最小单位 ...

  8. 无符号数、有符号数、补码在汇编中的运用及相关注意事项

    1.原码.反码.补码知识的复习: 三者的最高位均为符号位.我以前一直没弄明白的是为何8位补码的表示范围是-128~127,今天查阅了相关资料,于此记下. 仍然以8位为例: 原码的表示范围:-127~- ...

  9. 关于源码,反码,补码(正数--负数)---------(-128)自己的理解

    以一个字节为例 1.无符号位,一个字节可以存放0~255共256个数字:有符号位存放-128~127共256个数字: 2.无符号全都表示为正数:有符号位则首位表示正负数,正数首位为0,负数首位为1(因 ...

最新文章

  1. Linux如何从图形界面切换到命令界面
  2. 查看 Eigen库 linux系统的版本
  3. 修改android virtual device路径
  4. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
  5. ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
  6. /dev/mtdN和/dev/mtdblockN的区别
  7. c++ 静态变量赋值_Python变量及常量解释说明
  8. 【渝粤教育】21秋期末考试个人与团队管理10257k2
  9. 【渝粤教育】广东开放大学 财政学 形成性考核 (43)
  10. 将一个字段分成3个 php,整理几个方法
  11. TikZ绘图示例——尺规作图:直角的画法(一)
  12. 磁盘阵列(RAID)
  13. 苹果Mac最智能的javascript前端编辑器:WebStorm
  14. MyRocks之备份恢复
  15. 命名空间“System.Web”中不存在类型或命名空间名称“HttpUtility”。是否缺少程序集引用?...
  16. java excel 单元格换行_单元格里的文字换行_ExcelHome - 全球极具影响力的Excel门户,Office视频教程培训中心...
  17. (亲测有效)解决keil5编译出现的L6002U问题
  18. 18年12月英语六级第二套听力单词
  19. 【互联网及其应用】第4章网络应用技术
  20. 二极管主要特性及伏安特性曲线

热门文章

  1. python报错 scrolled: false_python 元组tuple - python基础入门(14)
  2. 【经典回放】JavaScript学习详细干货笔记之(二)
  3. Android之用 ExpandableListView使用解析(三级列表的实现)
  4. Android之内核学习笔记
  5. echarty轴自定义显示不全_表格打印不全怎么办?这招超简单!
  6. 这样子称象你试过没有?
  7. 需要多快的速度,才能在抽走桌布之后保持桌面物体不掉?
  8. 直男约会能有多奇葩​?
  9. 史上最被低估的两个学科!它们远比你想的更重要!
  10. 20幅扎心漫画,道尽无数人的人生!30万网友:这简直是在偷窥我生活...