计算机存储实数通常采用浮点表示法,具体步骤如下:
浮点表示法
浮点表示法允许小数点进行移动,从而可以在小数点左右有不同数量的码,极大地增加了实数可存储的范围。
浮点表示法由三部分组成:符号位、位移量和定点部分。
规范化
在存储实数时,首先需要将实数规范化,即使小数点左边只有一个1。
这一步骤有助于后续的指数和尾数的处理。
符号位
符号位用于表示实数的正负,通常用一位来表示。例如,+1的原码是`0000 0001`,-1的原码是`1000 0001`。
指数部分
指数部分用于表示实数的量级,通常用固定数量的位来存储。例如,IEEE标准规定单精度数用8位来存储指数。
尾数部分
尾数部分用于表示实数的精确值,通常用剩余的位数来存储。例如,单精度数用32位来存储尾数。
具体例子
以十进制小数`35.8125`为例,将其转换为二进制小数:
整数部分
`35`的二进制表示为`100011`。
小数部分
`0.8125`转换为二进制小数:
`0.8125 * 2 = 1.625`,取整数部分`1`,余下`0.625`。
`0.625 * 2 = 1.250`,取整数部分`1`,余下`0.250`。
`0.250 * 2 = 0.500`,取整数部分`0`,余下`0.500`。
`0.500 * 2 = 1.000`,取整数部分`1`,余下`0`。
因此,`35.8125`的二进制小数为`100011.1111`(省略尾数的无限循环部分)。
结论
计算机通过浮点表示法存储实数,包括符号位、指数位和尾数位。这种表示法有效地扩展了实数的表示范围,并允许计算机进行高效的实数运算。