进制之间的转换(略)

unsigned integer (无符号整数)

1. 8位二进制数表示的范围:2^8-1 (减1位二进制的减法运算)

解析:8位二进制数所表示的范围为:00000000 ~ 11111111 ,即最小为00000000 最大为11111111,那么

最大值11111111 = 100000000-1 = 0 ~ 2^8-1

注意:100000000-1 为二进制的减法运算

2,n位二进制数表示的范围为:0 ~ 2^n -1 (计算方式同上)

有符号的数表示方法:

定点数x=x0x1x2......xn在定点机器中表示如下(x0:符号位,0代表正号 1代表负号,x1...xn表示数值;即共有n+1位,其中n位为数值)

1.8位纯小数的表示范围:-0.1111111 ~ +0.1111111

其中0.1111111=1 - 0.0000001 = 1 - 2^-7,所以范围为-(1-2^-7) ~ +(1-2^-7)

注意:0.1111111=1 - 0.0000001 = 1 - 2^-7为二进制减法运算,且由于带有符号,所以数值位只有8-1=7位

2,n位纯小数二进制数表示的范围为:-(1-2^-n)~ +(1-2^-n) (计算方式同上)

3,n位纯整数二进制数表示的范围为:-(2^n -1)~ +(2^n -1) (计算方式同上)

计算机的机器码

1.原码表示法:原码就是数值的真值(绝对值)前面加上一个符号位(正数0,负数1)

例:如下式子中[x]原是机器数,x是真值

x=+0.1001, 则 [x]原=0.1001  (加粗的第一个0表示正数)

x=-0.1001, 则[x]原=1.1001  (加粗的第一个1表示负数)

原码:一个8位二进制的数对应有2^8=256个编码(8位中包含1位符号位),所表示的真值的范围为-(2^7-1) ~ +(2^7-1) 即:-127 ~ +127可以表示的数值个数为127+127=254 加“0”数值得到254=1=255;即原码中256个编码只能表示255个数,原因是0占了两个编码 

正0和负0:+0=0000 和 -0=1000

源码的移位规则:符号位不变,数值部分左移或右移,移出的空位补“0”。(左移一位相当于乘以2,右移一位相当于除以2)

十进制转二进制技巧性做法

补码

补码的定义:[X]补 = M + X ; 即X的补码就等于模加上真值X本身,M表示模

x>=0时,M+X大于M,把M丢掉,所以[X]补=X,即正数的补码等于其本身

x<0时,[X]补=M+X=M-|X|,所以负数的补码等于模与该数绝对值之差

模的大小:

纯小数补码表示的模M=2,纯整数补码表示的模M=2^(n+1) ,其中n为数值位位数

补码的性质:

(1).0的补码表示

纯小数:[+0]补=2+0.00 = 0.00;[-0]补=2+(-0.00)=0.00

纯正数:[+0]补=2^(n+1)+000=000 ;[-0]补=2^(n+1)+(-000)=000

即:0的补码表示只有一种形式就是0

(2).-1和-2^n的补码表示(注意与原码的表示范围比较)

n+1位纯小数补码:

[-1]补=2+(-1)=10.00+(-1.00)=1.00    =[-0]原

纯小数原码表示中[-1]原是不能被表示的,因为n位纯小数二进制数表示的范围为:-(1-2^-n)~ +(1-2^-n)即2^-n -1为原码的最小值而这个数肯定是要大于[-1]的,因此[-1]无法用原码表示

n+1位纯整数补码:

[-2^n]补=2^(n+1)+(-2^n)=100...0+(-10...0)=10...0

纯整数原码表示中[-2^n]原是不能被表示的,因为n位纯整数二进制数表示的范围为:-(2^n -1)~ +(2^n -1),即-2^n+1为纯整数原码的最小值而这个数肯定是要大于[-2^n]的,因此[-2^n]无法用原码表示

综上可知,-1和-2^n的补码与[-0]原表示形式一样,且对于定点正数和定点小数补码都比原码多表示一位;

补码的表示范围:

一个n+1位定点整数补码的表示范围: -2^n ~ 2^n - 1   即 ( -2^n =< x <=2^n - 1)

一个n+1位定点小数补码的表示范围:-1 ~ 1-2^-n    即(-1 =< x <= 1-2^-n)

(3).补码和原码的关系

对于正数,即若x>=0 , [x]原=[x]补

若x<0,对[x]原 各位按位取反(符号位不变)后再在最低位加1得到[x]补;反之将[x]补除符号位以外各位取反后,再在最低位加1,即得到[x]原

注意:补码中特殊数-1(纯小数)和-2^n(纯整数)的表示,在原码中没有对应表示

(4).[x]补[-x]补的关系

已知[x]补将[x]补的各位(含符号位)取反,然后在最低位加1,即得到[-x]补。反之亦然

(5)补码的移位规则

补码的左移(乘2):符号位不变,数值部分左移,最低位移出的空位填充0;

补码的右移(除2):符号位不变,数值部分右移,最高位移出的空位填充符号位

(6)补码的位扩展

例如将字节(8位二进制)表示的补码扩展为16位二进制表示的补码。

扩展的要求:数值本身不发生改变

定点小数:在最低位用0扩展

定点整数:在高位用符号位扩展

注意:在一般在试题中出现加法运算(z=x+y)则是对补码进行操作运算,所以需要将各个数(x,y,z)转换为补码

反码表示

反码的主要作用就是求补码。原码各位取反即为反码,反码末位加1既得补码

(1).反码的表示范围和原码相同。注意纯小数的反码不能表示为-1,纯整数的反码不能表示为-2^n

(2).在反码表示中,用符号位x0表示正负,形式与原码表示相同,0为正,1为负

移码表示

[x]移=(模的指数-1) + 真值[x],

即对于整数,模=2^(n+1) ,[x]移=2^(n+1-1) + x = 2^n + x

对于小数,模=2=2^1,[x]移=2^(1-1) + x = 2^0 + x

(1)移码的符号位:

0表示负数,1表示正数,和原码、反码、补码不同

(2)移码与真值的线性关系

移码的顺序和真值完全一致,因此移码在表示阶码时可以方便的进行大小比较,其结果与真值一致

计组—原码、补码、反码、移码复习相关推荐

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

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

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

    无符号数 寄存器的位数反映和决定无符号数的表示范围 比如八位的寄存器就只能储存十进制的0-255 有符号数 机器数与真值 在计算机当中没有硬件表示小数点的位置,而小数点的位置是我们自己约定的, 小数的 ...

  3. 原码 补码 反码 移码

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

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

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

  5. java反码补码原码作用_java原码补码反码关系解析

    本文为大家解析了java原码补码反码的关系,供大家参考,具体内容如下 原码:不管源数据是十进制还是十六进制,统统将数字转成二进制形式 反码:把原码的二进制统统反过来,0变成1,1变成0 补码:负数的反 ...

  6. 原码 补码 反码的转换

    正数 : 原码 补码 反码都相同 机器数:+1001010 原码:01001010 (符号位 正数为0) 补码:01001010 (补码与原码相同) 反码:01001010 (反码与原码相同) 负数 ...

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

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

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

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

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

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

最新文章

  1. VC连接SQL server2005
  2. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
  3. 小M的简单题(easy)
  4. mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
  5. TensorFlow:深度学习框架TensorFlow TensorFlow_GPU的简介、安装、测试之详细攻略
  6. SpringBoot_配置-@ConfigurationProperties与@Value区别
  7. Win10系列:JavaScript页面导航
  8. Spring 事务失效的 8 种场景!
  9. c++ new, operator new, placement new
  10. java获取客服列表,java-从列表中获取处理案例的服务
  11. Spring架构这么牛逼,这两大特性不得不说说!
  12. Android 判定手机是否root
  13. anaconda报错Collecting package metadata (current_repodata.json): failed
  14. HCIA-Big Data华为认证大数据工程师在线课程笔记
  15. Adobe Acrobat Professional 7.0
  16. Xmas snow for Mac(圣诞桌面装饰软件)
  17. 调取python背景减法库:MOG2和KNN,非常好用
  18. Position属性值的相关解析
  19. OSChina 周一乱弹 ——月薪三万长的帅的为啥找不到女朋友
  20. 实习入职这几天天的感受与感想

热门文章

  1. 苹果笔记本怎么找文件夹_如何在苹果笔记本中找出 “~/Library/Preferences/” 文件夹?...
  2. 7. 关于IntelliJ IDEA删除项目
  3. 深入理解计算机系统(2.3)---整数的表示方式精解无符号与补码编码(重要)...
  4. 3DMax的OFusion插件的使用问题
  5. 森汉姆算法(AS3)-检测两点之间所经过的节点
  6. Oracle访问数据的存取方法
  7. Windows访问令牌相关使用方法
  8. 九个著名科技公司的十位CEO的办公桌照片
  9. work hard, think harder
  10. Windows 2000本地路由表