无符号数

寄存器的位数反映和决定无符号数的表示范围
比如八位的寄存器就只能储存十进制的0-255

有符号数

机器数与真值

在计算机当中没有硬件表示小数点的位置,而小数点的位置是我们自己约定的,
小数的时候,小数点的位置默认是在符号位的后面,符号位在寄存器的最高位,
整数的时候,小数点的位置默认是寄存器最低位的后面

原码表示法

整数

这里x表示需要表示的值,而n表示的是存储整数n需要的位数,例如:

小数

原码的特点: 简单、直观 但是用原码作加法时,会出现如下问题:

能否只作加法?
找到一个与负数等价的正数来代替这个负数,就可使减变成加 ,下面就是解决方案:补码

补码

补的概念
比如时钟,现在是六点,你要转到3点,有两种方法:
减法:6-3=3
加法:6+9=15=3点
所以这里+9和-3的效果是一样的,减法可以变换成加法
称 + 9 是 3 以 12 为模的 补数
结论:
一个负数加上“模”即得该负数的补数
一个正数和一个负数互为补数时,它们绝对值之和即为模数

正数的补数即为其本身

这时我们就发现,寄存器的位数为4位,模是16的两个数-13和3,
它们的补数都是3,正数的补码是本身
但是我们如何区别这个补码是正数的还是负数的补码呢?
我们发现,如果是加上2^(n+1),n表示数值的位数,
2^(4+1)+(-1011)=100000-1011=10101
2^(4+1)+0101=100000+0101=100101=00101(第六位去掉,现在我们是寄存器是五位)
所以我们想使用一位来表示这个补码是正数还是负数
补码定义
整数
x是实际的值,n表示的是整数的位数,n+1是寄存器的位数,因为有一位来存储符号了
这样当是正数的时候,补码的符号位是0,负数的时候补码符号位是1

小数

求补码的快捷方式
x = 1010 时
前面的公式求补码的方式:
[x]补 =2^(4+1) - 1010 =100000-1010=10110
我们也可以换一种思维:
[x]补 =(11111+1)-1010=(11111-1010)+1=10101+1=10110
因为11111和任何比它小一位的数字相减,都是前面第一位是1后面取反
所以我们得出一个求补码的快捷方式:
当真值为负时,补码可用原码除符号位外每位取反,末位加1求得
它反过来也成立:
当真值为负时,原码可用补码除符号位外每位取反,末位加1求得
练习:
真值:0.0000
补码:0.0000
原码:0.0000

真值:-0.0000
补码:0.0000
原码:1.0000

真值:-1.0000(注意这里是小数)
补码:根据定义:2+x=10.0000-1.0000=1.0000
原码:无法表示

反码

整数
反码就是负数的时候原码的每个位置反过来,所以就是比补码少了一个+1,
定义中就是模=(之前的模-1)
和之前一样,x是真值,n是整数的位数,n+1是寄存器的位数

小数


例子:求 0 的反码
假设x=+0.0000
反码:0.0000

x=-0.0000
反码:1.1111

x=+0
反码:0,0000

x=-0
反码:11111

三种机器数总结

  1. 最高位为符号位,书写上用“,”(整数) 或“.”(小数)将数值部分和符号位隔开
  2. 对于正数,原码 = 补码 = 反码
  3. 对于负数,符号位为1,其数值部分
    原码除符号位外每位取反末位加1变成补码
    原码除符号位外每位取反变成反码
    设机器数字长为 8 位(其中1位为符号位) 对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围

已知[y]补码,求[-y]补码

假设y补码=y0. y1 y2 … yn
如果y补码表示一个小数而且是正值:y补码:0.y1 y2 …yn
那么y就是:0.y1 y2 …yn
-y就是:-0.y1 y2 …yn
-y的补码就是:1.^ y1^ y2…^ yn + 2^-n ( ^y1表示y1的取反)
所以y的补码就是-y的补码连同符号位在内,每一位取反,末位加一得到的
下面再来假设y的补码表示的是负数
y的补码=1.y1 y2 …yn
y的原码1.^ y1^ y2…^ yn + 2^-n ( ^y1表示y1的取反)
y的值:-(0.^ y1^ y2…^ yn + 2^-n)
-y的值(正数,补码一样):0.^ y1^ y2…^ yn + 2^-n
所以上面的结论是正确的

移码

补码表示很难直接判断其真值大小 ,比如
十进制31 和-31
二进制+11111和-11111
补码011111和100001,这样比较不了大小
而我们不是2^(n+1)+x,改变成2 ^n +x
那么就变成111111 和000001
这样比较就是31大于-31了
其实这样就是移码
定义
注意,移码只有整数的定义,没有小数的定义
[x]移 = 2^n + x(2n>x ≥ 2n)
x 为真值,n 为 整数的位数
相当于在真值上集体移动了2^n

移码和补码的比较

移码的特点

计算机组成原理:原码,补码,反码,移码相关推荐

  1. java部分基础知识 (二):计算机组成原理 原码 补码 反码 按位符 移位符 按位与 按位或 按位抑或 非 分析hashMap的put方法原理

    这里写目录标题 引言 符号位 正数的二进制计算 负数的二进制计算 按位符和移位符 按位符 移位符 分析hashMap运算符 byte和char 总结 引言 最近做完一个项目后,我忽然发现自己的基础并不 ...

  2. 真值 原码 补码 反码 移码

    真值 原码 补码 反码 移码 真值是相对与其它四种的数字类型 书写中一般表示的数叫做"真值" 机器中编码表示的数 "机器数||机器码<原码 补码 反码 移码 > ...

  3. 原码 补码 反码 移码

    目录 原码 反码 补码 移码 转换 原码 补码 反码 原码 0和1组成 正负用0和1表示(添加在最前面) 真值转原码 转化符号位 数值位十进制转二进制 对于十进制数 233(正数) 正数->符号 ...

  4. 计算机组成原理 原码,反码,补码,移码

    正数 : 三码合一 (原码,反码,补码一样) 正数的移码:变补码的最高位 复数 : 原码 ,反码(原码全部取反),补码(反码加1),复数的移码:变补码的最高位 求补码:从原码最低位开始一个" ...

  5. 计算机n位数的表示范围,计算机组成原理——原码、反码、补码的表示范围

    原码.反码.补码的表示范围是如何得到的 原码 纯整数的原码 纯小数的原码 反码 纯整数的反码 纯小数的反码 补码 纯整数的补码 纯小数的补码 原码 首先说原码,原码是有符号数中最简单的编码方式.原码表 ...

  6. 计算机运算方法之(原码 补码 反码 移码)

    无符号数 表示范围:0-65535 有符号数 表示范围: -32768~+32767 正值:0 负数:1 有符号数(小数) 小数:+0.1011表示: 01011 小数点位置在0.1011 小数:-0 ...

  7. 计算机组成原理之 原码 补码 反码

    原码 补码 反码 前言 一.有符号数 1.1原码 补码 反码 总结 前言 在计算机中一般使用二进制表示各个有理数.在计算机中参与运算的数有两大类:有符号数和无符号数.无符号数就是没有符号的数,在寄存器 ...

  8. 计算机阵列除法器原理,计算机组成原理原码阵列除法器.doc

    计算机组成原理原码阵列除法器 计算机组成原理 专周报告 成都电子机械高等专科学校计算机工程系 ` 目 录 一.项目名称1 二.实验目的1 三.不恢复余数的阵列除法器介绍1 四.逻辑流程图及原理3 算法 ...

  9. c语言原码 补码 反码,C语言 原码--反码--补码

    //原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...

最新文章

  1. 如何快捷高效实现仓储精细化、透明化管理?
  2. python中常见的流程结构-Python学习笔记5程序的控制结构
  3. 理解js中的this指向以及call,apply,bind方法
  4. 卷积神经网络参数计算及卷积层输出尺寸计算
  5. docker+selenium grid解决node执行经常卡死
  6. LVQ,Learning Vector Quantization,学习向量量化
  7. mysql获取当前时间的订单_mysql获取当前时间,及其相关操作
  8. 95-240-065-源码-state-托管算子状态
  9. 谷歌推出 GKE 开源依赖关系漏洞奖励计划
  10. 定时任务中cron表达式详解
  11. biggan:large scale gan training for high fidelity natural image synthesis
  12. 软件工程---客观题
  13. Office 解决WORD转PDF未显示书签。
  14. linux开机自动启动sh脚本
  15. 中国电信短信网关程序源码
  16. 【小程序开发之微信登录】
  17. Java减肥高手Xtend 捆绑Eclipse IDE
  18. 运维工程师是桥的护栏_运维工程师职务说明书
  19. 仿抖音 抖音接口开发文档
  20. VN Studio环境的搭建

热门文章

  1. 剑侠情缘二服务器维护要多久,玩剑侠2就必须看的帖子,尤其是新手
  2. 全球与中国汽车替换玻璃市场运营模式与“十四五”发展前景预测报告2022-2028年版
  3. ping icmp和tcp区别:
  4. Tableau 安装失败
  5. php 去除中英文空格,php去除字符串首尾中英文空格程序
  6. Java前端框架ZK的分页组件
  7. VS调试状态下断点总是进不去,不能进断点调试解决办法
  8. java邮箱匹配_Java邮箱正则表达式
  9. 立志 - 天行健,君子以自强不息
  10. 腾讯x5内核使用方法全网最简单手动安装安卓APP