数据表示

2021-02-12  本文已影响0人  八月飞花

前言

进制是为了我们方便第操作数据、方便地读取数值所做的必要转换

进制分类

在计算机中常用的进制包括 二进制 八进制 十进制 十六进制

进制转换

一般进制转换主要是 任意进制与十进制转换,或者十进制转为二进制,十进制转为二进制所用到的方法为短除法。
二进制转化为十进制使用按权展开法

举例

十进制94 转二进制
则需要对94 进行短除,取余数

2 | 94  - 0
2 | 47  - 1
2 | 23  - 1
2 | 11  - 1
2 |  5  - 1
2 |  2  - 0
          1
从下向上取得 1011110
转十进制    2^6 + 2^4 + 2^3 + 2^2 +2^1 =64 + 16 + 8 + 4 + 2 =94
二进制转八进制和十六进制,只需要取相应的位分段即可

原码反码补码移码

特点 数值1 数值-1 1-1 特点
原码 负数高位为1 0000 0001 1000 0001 1000 0010 可以表示正负数,不可以做数值减法
反码 符号位不变,负数数值位取反 0000 0001 1111 1110 1111 1111 可以做加减法,无法区分正负零
补码 在反码基础上 负数
数值位+1,符号位不变
0000 0001 1111 1111 0000 0000 可以做加减法
移码 在补码的基础上,符号位取反 1000 0001 0111 1110 1000 0000 不可以做加减法,作为浮点数阶码
运算使用

数值表示范围

整数范围 8
原码 -(2^(n-1) -1)~(2 ^[n-1]-1) -127~+127
反码 -(2^(n-1) -1)~(2 ^[n-1]-1) -127~+127
补码 -(2^(n-1))~(2 ^[n-1]-1) -128~+127(区分了正负0,将负0标记为128)

浮点数运算

浮点数表示
  N=M*R^e
M:尾数(表示将一个浮点数通过一些方式让其小数点向左偏移)
R:基数(一般在计算机中基数为 2 )
E:指数(小数点偏移的位数)

浮点数运算的步骤
对阶 --> 尾数运算-->结果格式化

举例

1000+119
首先对阶(保持指数相同)
1.0 x 10^3
1.19 x 10^2
 对阶是低的对齐高的指数
  1.19 x 10^2 --->0.119 x 10^3

尾数运算 将对阶的尾数相加减
1.0+0.119 =1.119
1.119 x 10^3;

结果格式化:确保小数点左边的位置不能是0,也不能是一位以上的数
如果出现0.xxx *10^n 需要让整数位是一个正整数,而不是0
格式化为x.xxx *10^[n-1]
上一篇 下一篇

猜你喜欢

热点阅读