zoukankan      html  css  js  c++  java
  • 计算机中如何表示数字-01机器数与真值

    机器数就是数值在计算机中的表示形式,真值则是它在现实中的实际数值。可以这样简单的理解。
    因为计算机只能直接识别和处理用0、1两种状态的二进制形式的数据,所以在计算机中无法按人们的日常书写习惯用正、负符号加绝对值来表示数值,而与数字一样采用二进制代码0和1来表示正、负号。这样在计算机中表示带符号的数值数据时,符号和数均采用了0、1进行了代码化。这种采用二进制表示形式,连同正负符号一起代码化的数据,称为机器数或者机器码(即,数值在计算机中的二进制表示形式)。与机器数对应,用正、负符号加绝对值来表示的实际数值称为真值。
    根据约定机器数是否存在符号位,机器数可以分为无符号数和带符号数。无符号数是指计算机字长的所有二进制位均表示数值。带符号数是指机器数分为符号位和数值两部分,且均采用二进制表示。一般约定最高位表示符号。
    例1-1:10011001作为无符号定点整数时,真值是153;作为带符号定点整数时,第一位是符号位,1代表负号,二进制数10011001的真值是-0011001,转化成十进制是-25。
    对于带符号数,根据小数点位置固定与否,又可以分为定点数和浮点数。在介绍浮点数之前我们要将注意力完全放在定点数上面,要有点耐心,对定点数的理解程度决定了我们对浮点数的理解程度,因为可以将浮点数看成是对定点数的一种应用,以后就会明白了。好了,先看一看什么是定点数。
    定点数约定所有数据的小数点位置均是相同且固定不变的。计算机中通常使用的定点数有定点小数和定点整数两类。
    定点小数:对于一个长度为n位的机器数,定点小数约定小数点在符号位和最高数值位之间,如下
    数符(最高位,占用1位). 尾数(剩余n-1位)
    小数点只是一个约定,是隐含的,不占用空间。
    定点整数:对于一个长度为n位的机器数,定点整数约定小数点在最低数值位之后,如下
    数符(最高位,占用1位)尾数(剩余n-1位).
    小数点也是隐含的。
    例1-2:下的八位二进制数,我们看看它们所代表的值是多少
    定点小数:1.1011001      真值=-0.1011001=-0.6953125
    定点整数:11011001       真值=-1011001=-89
    真值:127=+1111111       定点整数:01111111
    真值:-0.125=-0.001      定点小数:1.0010000
    总结上面的内容,机器数的特点是:
    1. 符号数值化,0代表正、1代表负。通常将符号的代码放在数据的最高位;
    2. 小数点是隐藏的,不占用存储空间;
    3. 每个机器数所占据的二进制位数受机器硬件条件的限制,与机器字长有关,超过机器字长的数值要舍去。
    4. 因为机器数的长度是由机器的硬件规模规定的,所以机器数表示的数值是不连续的。
     
    注:机器内部设备一次能表示的二进制位数叫机器的字长,一台机器的字长是固定的。8位长度的二进制数称为一个字节(Byte),现在机器字长一般都是字节的整数倍,如字长8位、16位、32位、64位。
    在计算机中为了便于数值的运算和处理,对机器数定义了不同的表示方法,其中包括了数的原码、补码、反码和移码表示。以后将分别对它们进行介绍
  • 相关阅读:
    【bzoj4152】[AMPPZ2014]The Captain 堆优化Dijkstra
    【bzoj4547】Hdu5171 小奇的集合 矩阵乘法
    【bzoj1264】[AHOI2006]基因匹配Match 树状数组
    【bzoj3856】Monster 乱搞
    【bzoj4724】[POI2017]Podzielno 二分
    【bzoj4976】宝石镶嵌 乱搞+dp
    【bzoj4070】[Apio2015]雅加达的摩天楼 set+堆优化Dijkstra
    【bzoj4627】[BeiJing2016]回转寿司 离散化+树状数组
    【bzoj2124】等差子序列 STL-bitset
    【bzoj1996】[Hnoi2010]chorus 合唱队 区间dp
  • 原文地址:https://www.cnblogs.com/xieji233/p/6155652.html
Copyright © 2011-2022 走看看