数据的表示

举报
小糖饼最甜呀 发表于 2022/02/10 23:40:36 2022/02/10
【摘要】 数据的表示 二进制转换 十进制转换为二进制整数:除以2倒取余数,直到商为0。具体:用2去除十进制整数,得到商和余数;再用2去除商,再次得到商和余数;一直到商为0时结束;然后把先得到的余数作为二进制的低位,后得到的余数作为二进制数的高位,依次排列起来即可。小数:乘2取整,直到小数为0.具体:用2乘十进制小数,得到积,将积中的整数部分取出;再用2乘余下的小数部分,又得到一个积,再将积中的整数部...

数据的表示

二进制转换

十进制转换为二进制

  1. 整数:除以2倒取余数,直到商为0。

具体:用2去除十进制整数,得到商和余数;再用2去除商,再次得到商和余数;一直到商为0时结束;然后把先得到的余数作为二进制的低位,后得到的余数作为二进制数的高位,依次排列起来即可。


  1. 小数:乘2取整,直到小数为0.

具体:用2乘十进制小数,得到积,将积中的整数部分取出;再用2乘余下的小数部分,又得到一个积,再将积中的整数部分取出;一直到积中的小数部分为0,或达到所要求的精度为止;然后先取得整数作为二进制小数的最高位,后取的整数作为低位,依次排列起来即可。

注意:不是任何一个十进制小数都能转换成有限位的二进制数。

二进制转换为十进制

方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。
规律:个位次数是0,十位次数是1,…,依次递增,而十分位次数是-1,百分位次数是-2,…,依次递减。



机器数

机器数:一个数在计算机中的二进制表示形式,即该数的机器数。机器数最高位表示符号位,0表示正数,1表示负数。

机器数的真值:将带符号位的机器数对应的真正数值称为机器数的真值。(机器数的最高位是符号位,所以其形式值不等于真正的数值。)

原码

原码:符号位+真值的绝对值。
例如:
[+1]原= 0000 0001
[-1]原= 1000 0001

反码

正数:原码本身;
负数:在原码的基础上,符号位不变,其余各位按位取反。
例如:
[+1] = [0000 0001]原= [0000 0001]反
[-1] = [1000 0001]原= [1111 1110]反

补码

正数:原码本身;
负数:在反码基础上+1,也就是在原码基础上,符号位不变,其余各位按位反,最后+1。
例如:
[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补
[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补

移码

移码(又叫增码)一般用做浮点数的码,引入的目的是为了保证浮点数的机零为全0。
如果机器字长为n,规定偏移量为 2 n 1 2^{n-1} ,则移码的定义为:
若X是纯整数,则[X]移= 2 n 1 2^{n-1} + X,(- 2 n 1 2^{n-1} ≤X< 2 n 1 2^{n-1} )
若X是纯小数,则[X]移=1+X(-1≤X<1)
移码:在偏移量 2 n 1 2^{n-1} 的情况下,要将补码的符号位取反便可获得相应的码。
例如:
[+1]移=1 0000001
[-1]移=0 1111111

阶码

阶码,表示小数点的位置,一般把一个数转化为科学计数法表示,10的指数就是阶码的大小,再把这个指数转化二进制,写成8位或者11位。

定点数

定点数:小数点的位置固定不变的数。
小数点的位置通常有两种约定方式:

  • 定点整数:纯整数,小数点在最低有效数值位之后;
  • 定点小数:纯小数,小数点在最高有效数值位之前;
取值范围
码制 定点整数 定点小数
原码 -(2 n 1 ^{n-1} -1)~ +(2 n 1 ^{n-1} -1) -(1-2 ( n 1 ) ^{-(n-1)} )~+(1-2 ( n 1 ) ^{-(n-1)} )
反码 -(2 n 1 ^{n-1} -1)~ +(2 n 1 ^{n-1} -1) -(1-2 ( n 1 ) ^{-(n-1)} )~+(1-2 ( n 1 ) ^{-(n-1)} )
补码 -2 n 1 ^{n-1} ~ +(2 n 1 ^{n-1} -1) -1~+(1-2 ( n 1 ) ^{-(n-1)} )
移码 -2 n 1 ^{n-1} ~ +(2 n 1 ^{n-1} -1) -1~+(1-2 ( n 1 ) ^{-(n-1)} )

注:对于原码和反码,存在+0和-0两种表示0的方式,只能表示2 n ^n -1个数。但是补码和移码可以表示2 n ^n 个数。

浮点数

浮点数:小数点位置不固定的数,相较于定点数,可以表示更大范围的数。

  • 表示格式:
阶符 阶码 数符 尾数

阶码:带符号的纯整数;主要决定数值范围;一般用移码表示;
尾数:带符号的纯小数;决定数值的精度;一般用补码表示;
注:浮点数表示不是唯一的,即小数点位置变化时,阶码也对应变化。因此多个浮点形式可以表示同一个数。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。