=====================================================================================
1、正数的反码和补码都与原码相同。
2、而负数的反码为对该数的原码除符号位外各位取反。
3、负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加11、原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用  二进制形式表示。
2、反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
3、补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
4、正零和负零的补码相同,[+0]补=[-0]补=0000 0000B。计算机中数值都是以补码的形式存储
======================================================================================真值             原码       ||       反码               补码              表示的数值
======================================================================================0             0000_0000   |                       0000_0000                  01             0000_0001   |                       0000_0001                  1...               ....     |                         .......               ....     |                         .......               ....     |                         .......               ....     |                         .......               ....     |                         ....127            0111_1111   |                       0111_1111                 127
=====================================================================================-0             1000_0000   |    1111_1111          1_0000_0000              -128  -1             1000_0001   |    1111_1110           1111_1111               -127-2             1000_0010   |    1111_1101           1111_1110               -126...                ....     |...                ....     |...                ....     |-127            1111_1111   |    1000_0000           1000_0001                 -1
===================================================================================== =====================================================================================符号位         数值位1(负数)           7位 0(正数)           7位特殊:10000000  :-0表示-128上述的-0位特殊情况,规定它在计算机中的表示的数为-128;-0:10000000按位取反再加1后为1_0000_0000超出了8位,把这个值规定为8位表示的-128;因此8位二进制数可表示的有符号数为0-255;可表示的无符号数为-128-0-127
=====================================================================================
在这里要说到一个概念 模,“模”是指一个计量系统的计数范围。如时钟等。
时钟的计量范围是0~11,模=12。表示n位的二进制数计量范围是0~2(n)-1,模=2(n),
八位二进制数的模为2^8 。
任何有模的计量器,均可化减法为加法运算(这就是计算机二进制运算的原理)。假设当前
时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:
10-4=6;另一种是顺拨8小时:10+8=12+6=6 。在以12模的系统中,加8和减4效果是一样
的,因此凡是减4运算,都可以用加8来代替。对“模”而言,8和4互为补数。实际上以12模的
系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。
对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,
若再加1成为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,
所以8位二进制系统的模为2^8。在这样的系统中减法问题也可以化成加法问题,只需把减
数用相应的补数表示就可以了,把补数用到计算机对数的处理上,就是补码。
对一个正数的原码取反加一,得到这个正数对应负数的补码。例如~6=-7,而且加一之后
会多出一个八进制补码1000 0000,而这个补码就对应着原码1000 0000,数字位同时当做符号位即-128 。
所以根据以上我们可以理解为什么八位二进制数表示范围为-128~+127。
八位二进制正数的补码范围是0000 0000 ~ 0111 1111 即0 ~ 127,负数的补码范围是正数
的原码0000 0000 ~ 0111 1111 取反加一(也可以理解为负数1000 0000 ~ 1111 1111化为
反码末尾再加一)。  所以得到 1 0000 0000 ~ 1000 0001,1000 0001作为补码,其原码
是1111 1111(-127),依次往前推,可得到-1的补码为1111 1111,那么补码0000 0000
的原码是1000 0000符号位同时也可以看做数字位即表示-128,这也解释了为什么
127(0111 1111)+1(0000 0001)=-128(1000 0000)。

8位二进制数的原码、反码、补码以及它能表示的范围相关推荐

  1. 由Python位运算到原码反码补码

    采用书籍Python核心编程(第二版),人民邮电出版社,2008年7月第1版.本书以Python2.5为主,但笔记主要以Python3.6为主. 一.Python位运算操作符 Python支持标准位运 ...

  2. 二进制数的原码反码补码转换

    #include <iostream> #include <math.h> #include <string.h> using namespace std; voi ...

  3. 【程序员必修数学课】-基础思想篇-二进制-原码反码补码的数学论证

    二进制计数法&原码&反码&补码 Ⅰ 前言 Ⅱ 二进制计数法 A. 什么是二进制计数法? B. 为什么要使用二进制? C. 二进制的位运算 D. 符号位 E. 溢出 Ⅲ 原码&a ...

  4. python原码反码补码

    python原码反码补码 1. 计算机计算的逻辑 2. 原码反码补码 2.1 正数: 2.2 负数 2.3 原码与补码之间的转换 2.3.1 原码->补码 2.3.1 补码->原码 2.3 ...

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

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

  6. 关于 原码 反码 补码 位运算

    二进制 原码:最高位为符号位,0为正  1为负 正数的原码 反码 补码 都是相同的 反码:负数的反码为原码符号位不变 其它对应变化(1变0 0变1) 补码:等于 反码+1 3^-3 =? 运算过程 - ...

  7. 原码反码补码总说N+1位范围

    问题场景: 最近在看计算机软考的东西,思考了一个问题,对于大牛来说,也许比较幼稚,但是我还是想记录一下. 问题描述: 为什么原码反码补码总说N+1位,用这个前提去讨论它的范围呢?说说N位不是很好嘛? ...

  8. 关于计算机中 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  9. 原码, 反码, 补码, 移码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

最新文章

  1. 《C#3.0 in a Nutshell ,3rd Edition》之序言篇
  2. 三个斯坦福华裔学生,送外卖成亿万富翁
  3. 王道408数据结构——第七章 查找
  4. mysql常用操作(一)
  5. POJ1958 Strange Towers of Hanoi [递推]
  6. 语音识别技术分析:语音变成文字其实没有那么神秘
  7. Qt5学习笔记之QQ登录界面一:制作界面
  8. USB速度异常的问题
  9. Vue 导出excel 导出多个sheet
  10. 2001年新闻组大全
  11. 【HTML+CSS】移动端布局之流式布局
  12. 自动识别并汇总发票信息的智能机器人来啦!
  13. 记录:Flink checkpoint 过期导致失败(线上问题)
  14. 2021-2027全球与中国美容淋浴器市场现状及未来发展趋势
  15. bt面板从7.1升级到7.5.2之后网络挂了
  16. 蓝懿ios技术交流和心得分享 16.1.30
  17. 解决Excel打开UTF-8编码CSV文件乱码的问题亲测有效
  18. 操作系统多线程例子--吃水果问题
  19. 学前教育试题库及答案_(完整版)《学前教育学》试题及答案
  20. Python 3爬虫网易云(十)—— 爬取歌词读入文件存储

热门文章

  1. Windows各版本区别
  2. 计算机社团技术部部长述职报告,社团部长个人工作总结(精选6篇)
  3. java 解析二进制_Java二进制指令代码解析
  4. mac 查看环境变量_Mac开工利器Homebrew介绍
  5. Python入门-try-except
  6. OpenGL基础2:OpenGL简介
  7. Unity3D基础10:利用Transform组件移动物体
  8. Unity3D基础8:C#脚本
  9. Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
  10. bzoj 4237: 稻草人(CDQ分治+单调栈+二分)