小数

十进制小数的二进制,八进制,十六进制转换方法

倖福魔咒の 提交于 2019-12-09 21:47:12
十进制小数的二进制,八进制,十六进制转换方法 十进制小数转换为二进制小数 方法:“乘2取整” 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分. 如此不断重复,直到小数部分为0或达到精度要求为止。第一次所 得到为最高位,最后一次得到为最低位。 如:0.25的二进制 0.25*2=0.5 取整是0 0.5*2=1.0 取整是1 即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位) 0.8125的二进制 0.8125*2=1.625 取整是1 0.625*2=1.25 取整是1 0.25*2=0.5 取整是0 0.5*2=1.0 取整是1 即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位) 如果小数部很难为0时,则根据要求精度取近似值。 比如:0. 2的二进制 0.2*2=0.4 取整是0 0.4*2=0.8 取整是0 0.8*2=1.6 取整是1 0.6*2=1.2 取整是1 0.2*2=0.4 取整是0 即0.2的二进制是0.00110011。。。成无限循环小数了。 十进制小数转换为八进制小数 方法:“乘8取整” 0.71875)10 =(0.56)8 0.71875*8=5.75 取整5 0.75*8=6.0 取整6 即0.56

【讲古堂】浮点数

假如想象 提交于 2019-12-03 20:12:07
【 讲古堂 】 浮点数 ( dubenju@126.com 2015/12/19 ) 众所周知,由于用高低电平的电路很容易实现二进制,所以在计算机中普遍采用二进制来存储数据。对应的二进制的位用 Bit 来表示。 1 字节 =8Bits ,如果考虑符号的话,那么一个字节能存储的数值范围是 -128 到 127 。只能是整数,不能是小数。那么小数怎么办呢? 小数的话,一定要有小数点的。如果把小数点固定在一个不变的位置的话,就成了定点数。比如 Oracle 数据库的 NUMBER(4, 2) 则能存储 17.25 或 0.50 这样的数。 定点数 (Fixed Point Number) 所谓定点数,即约定数据的小数点位置是固定不变的。通常将定点数据表示成纯小数或纯整数。为了将数表示成纯小数,通常把小数点固定在数值部分的最高位之前;而为了把数表示成纯整数,则把小数点固定在数值部分的最后面。 对纯小数进行运算时,要用适当的比例因子进行折算,以免产生溢出,或过多损失精度。 假设用一个 n 位字来表示一个定点数 x= x0 x1 x2 … xn-1 ,其中一位 x0 用来表示数的符号位,其余位数代表它的量值。为了对所有 n 位进行统一处理,符号位 x0 通常放在最左位置,并用数值 0 和 1 分别代表正号和负号。对于任意定点数 x= x0 x1 x2 … xn-1 ,如果 x 表示的是纯小数