我是靠谱客的博主 清秀八宝粥,最近开发中收集的这篇文章主要介绍1.3 - 码制一、机器数二、码制三、数表示的范围四、考法:数的表示范围五、各种码制的特点、应用场景,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、机器数

1、计算机采用的数值的表达方式就是机器数;

2、计算机对机器数的约定

3、举例说明

二、码制

1、原码

2、反码

3、补码

4、移码

三、数表示的范围

1、原码

2、反码

3、补码

4、移码

四、考法:数的表示范围

五、各种码制的特点、应用场景


一、机器数

1、计算机采用的数值的表达方式就是机器数;

(1)理解
  • 在生活中我们是按十进制计数的,例如10;但是在计算机中是用二进制,这个用于表示十进制数10的二进制的0、1序列,就是机器数。

2、计算机对机器数的约定

  • 计算机中约定固定长度的二进制位来表示一个数;
可能是8位,可能是32位,也可能是其他;这个与不同的环境有关,考试的时候需要注意;
  • 机器数中约定,用最高为来表示一个数的正负;
0表示正数(+);1表示负数(-);
  • 计算机中约定,小数点的位置是固定的;所以机器数中,不需要一位专门的二进制位来表示这个数是小数;
如果是整数,小数点位在最低有效数位之后;
如果是小数的话,小数点在符号位之后,最高有效数位之前;

3、举例说明

(1)8个二进制位表示一个固定的数,那么最高位用来表示正负,剩余7位用来表示数值;
  • 1对应的机器数是:0(符号位)0000001;
  • -1对应的机器数是:1(符号位)0000001;
  • 整数时的小数点位置:0(符号位)0000000.0;
  • 小数时的小数点位置:0(符号位).0000000;

二、码制

1、原码

(1)定义
  • 原码(true form)是计算机中一种对数字的二进制定点表示方法。
  • 可理解为直接由十进制数转换得到的二进制数,就是原码;
(2)运算
  • 由图可知,使用原码来进行二进制数的加减法运算,所得到的结果是错误的;原因是,计算时对原码中的符号位也进行了运算;
(3)正确运算过程
  • 将原码中的符号位剔除出来;
  • 然后确认减数和被减数的大小,依此来判断计算结果是整数还是负数;
  • 然后再进行运算。

2、反码

(1)反码的出现原因
  • 按照原码的逻辑进行运算,就复杂了,不利于计算机的实现,所以对于机器数的运算又想出了其他编码方式-反码。
(2)原码和反码的转换
  • 正数的原码转反码:不变;
  • 负数的原码转反码: 符号位不变;数值位按位取反;
按位取反就是原来是0的位变成1,原来是1的地方变成0;
(3)运算
  • 由图可知,使用反码来进行二进制数的加减法运算,所得到的结果是错误的;原因也是,计算时对原码中的符号位也进行了运算;

3、补码

(1)补码的出现原因
  • 按照反码的逻辑进行运算,就复杂了,不利于计算机的实现,所以对于机器数的运算又想出了其他编码方式-补码。
(2)原码和补码的转换
  • 正数的原码转补码:不变;
  • 负数的原码转补码: 符号位不变;数值位按位取反后+1;
按位取反就是原来是0的位变成1,原来是1的地方变成0;
(3)反码和补码的转换
  • 整数的补码=反码;
  • 负数的补码= 反码+1;
(4)运算
  • 由图可知,使用补码来进行二进制数的加减法运算,所得到的结果是正确的;
(5)补码的引用场景
  • 用于二进制的加减运算;

4、移码

(1)移码的出现原因
  • 通过补码表示浮点数时,可能会出现问题;例如 当n无限趋于0的时候, 就等于 ,就是不正确的;所以用移码来表示浮点数;
(2)补码和移码的转换
  • 正数的移码=补码的符号位取反,其他位不变;
  • 负数的移码=补码的符号位取反,其他位不变;
(3)移码的引用场景
  • 移码常用于表示浮点数中的阶码。而浮点数的阶码主要决定了浮点数能表示的数值范围。

三、数表示的范围

1、原码

  • n位二进制对应的表示编码的个数的计算公式:
  • n-1:最高位是符号位,只表示数值的正负,不表示数值的大小;表示数值位的二进制位数少了一位,所以需要减去1;
  • :n位二进制数值,表示的编码个数;
  • :编码时从0开始编,0~3是四个编码; 是四个编码,分别是00、01、10、11,其中最大值是3;所以 需要再减去1才是最大编码值;所以2n-1-1才能得到最大编码值,才能得到数表示的最大范围;
  • 又因为原码的最高位是符号位,说明原码可正可负,所以原码表示的范围有负区间;

2、反码

  • 与原码表示的范围一致;

3、补码

  • 补码表示的范围的正区间,与原码和反码一致;
  • 补码的负区间没有减一,原因是
(1)已知0有两种表示方式:+0=0 0000000;-0=1 00000000;
(2)我们把-0(10000000)用来表示极端的情况,也就是负数的最小的端值,所以负数这一区间内就多出来一个,所以就不用减一了;

4、移码

  • 与补码表示的范围一致;

四、考法:数的表示范围

五、各种码制的特点、应用场景

最后

以上就是清秀八宝粥为你收集整理的1.3 - 码制一、机器数二、码制三、数表示的范围四、考法:数的表示范围五、各种码制的特点、应用场景的全部内容,希望文章能够帮你解决1.3 - 码制一、机器数二、码制三、数表示的范围四、考法:数的表示范围五、各种码制的特点、应用场景所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部