机器数:数值数据在计算机中的表现形式称为机器数。
表示范围受计算机字长的限制
机器数的符号位必须被数值化为0和1
机器数的小数点是用规定的隐含方式来表达的
⚠️ 计算机硬件无法区分有符号(signed )与无符号(unsigned )数,只能由程序指令加以区分
小数点的表示方法
定点表示法:约定所有机器数的小数点位置都是固定不变的,可分为定点小数、定点整数两种。
- 定点小数:用于表示纯小数,最高位是符号位,因此 位定点小数能表示的最精确数为 ,即 B(⨳为方便描述,定义 表示n个k )
- 定点整数:用于表示纯整数,最高位也是符号位,因此 位定点整数能表示的绝对值最大的整数为 (不考虑补码,补码则是 ),即 B
⚠️然而计算机所处理的很多数据均是整数和小数都不为0的实数,因此在定点计算机中经常需要将实数乘以 来移动小数点从而满足纯小数或纯整数的要求,处理完后再 复原,
e.g. 浮点表示法:以科学记数法 表示数值,其中 表示阶数,数据的小数点位置由阶数决定,因此是浮动的。
- 阶码的底 一般取2的幂次2、8、16,在机器中规定隐含(不记录)
- 尾数 是一个定点小数,决定浮点数的精度
- 阶数 是一个定点整数,决定浮点数的表示范围
定点机器数的表示方法:n位定点 [整数\小数] 一般有 位机器数,即符号位不包含在n位定点数中
原码:最高位表示符号位(0正1负,下同 ),其余位与绝对值相同。
对于n位定点整数 ,正数为其本身,而负数则先取其绝对值 再加上最高符号位 ,因此其原码为
对于n位定点小数 ,正数为其本身,负数则将整数位变1,其余位不变,因此同定点整数可得
- 特点:0有 两个原码,会造成歧义
反码:最高位为符号位,正数的其余位为其原码,负数则按原码取反。
- 对于n位定点整数 ,正数为其本身,而对负数来说,在不考虑符号位的情况下根据反码定义有 ,再考虑符号位 可得 ,因此其反码为
- 对于n位定点小数 ,正数为其本身,而对负数来说,注意到二进制中有 ,那么同理有 ,再考虑符号位1可得 ,因此其反码为
- 特点:0依然有 两个原码;通常作为补码转换的中间态
★补码★:最高位为符号位,正数的其余位取原码,负数其余位取反码+1.
对于n位定点整数 ,根据其定义以及前原码与反码的表达式,可得
对于n位定点小数 ,取反码后加1加的是最后一位,即 ,因此可得
特点:计算机中最广泛应用的一种机器数表示方法,能将减法用加法实现(补码干了什么:反码时 帮你做了减法,补码+1抵消-1,而 超过n位发生上溢,从而出色地完成了减法)
移码:最高位为符号位,但是0负1正!其余位与补码相同 其中 称为偏移量.
「Section 1」数据格式
本文深入探讨了机器数的概念,包括定点表示法和浮点表示法。定点数分为定点整数和定点小数,其表示范围受限于计算机字长,且小数点位置固定。浮点数通过科学记数法表示,小数点位置可变,阶码和尾数分别决定了精度和范围。此外,还介绍了原码、反码和补码三种二进制表示方法,以及它们的特点和应用。
摘要由CSDN通过智能技术生成