本文共 1274 字,大约阅读时间需要 4 分钟。
在不断的更新当中
一 进制与进制之间的转换 "------------十进制(先说整数)转换八进制,二进制,十六进制 "-----------------统一的办法是用十进制除以八进制,二进制,十六进制,直到除数为零,然后把余数从下到上组织起来,以下边的数在左,上边的数在右的形式组织 看看下面的图就应该明白了 那小数部分如何去转换成相应的二进制,八进制,十六进制呢其实也很简单 举一个例子其他的都是相同的做法(我举一下二进制),就比如说,将(0.63)10转换成二进制数(要求4位有效位)。 我只需要让0.63不断的乘以二,取其整数部分,从上到下组织就行 注意可能乘积的小数部分总得不到0,此时得到的是一个近似值,达到要求的精度即可。 所以(135.63)转换成二进制是(1100001.1010) 二,八、十六进制数之间的相互转换 ------ 八/十六进制数转换为二进制数,这个比较简单了,八进制我用三位二进制去表示,十六进制我用四位二进制去表示,就可以了 (15.24)8=(001 101.010 100)2=(1101.0101)2 (1D.5)16=(0001 1101.0101)2= (1 1101.0101)2 那八进制与十六进制如何转换呢我们可以借助二进制去进行转换 最后一个转换了二进制和十六进制/八进制如何去转换呢, 上一个例子比较清楚吧 (1 101.010 1)2=(001 101.010 100)2=(15.24)8 看这个例子,如果要化成八进制的话小数点以前三个为一组,如果不足三个在左边补零,小数点后面也是三个一组,如果不足的话小数点右边补零,十六进制是相同的算法 定点与浮点表示 原码表示法,就是最高位为符号位,后面跟的是,数值的绝对值 [+0.10110]原=0.10110, [-0.10110]原=1.10110 这时要注意了零有两种表示,+0=00000000,-0=10000000 任何事务都有自己的缺点那么原码的缺点是什么纳, 1,0的表示不唯一,给使用带来不便。 原码加减运算复杂(需要判定两个数的符号、绝对值大小,结果的 符号,用绝对值大的数减去绝对值小的数) 需要额外对符号位进行处理,所以我们的大哥要出现了,那就是补码,这时候,你可以想一下钟表,八点如何到达六点呢,一种方法是8-2,另一种方法是8+10都可以到达六点,这时候-2就相当于10,减法相当于了加法使运算变得简单起来,以下是个人的理解 1,一个负数跟它的补码在某种关系上是相等的 如何去求补码纳 1,正数的补码等于它本身 2,负数的补码=模-| 该负数 |,你可以想一下表 =模+该负数 来练几个题吧,为八位 (-11001)的补码 = 二的八次方-11001=11100111 (-0.11001)的补码=二 -0.11001=1.0011100 来看一下有没有解决零表示不唯一的缺点呢 -0=二的八次方-0=二的八次方 所以解决了 来补码的优点 在运算时可以将符号位和数值位统一处理,不需像原码运算那样将符号位单独处理。转载地址:http://dwyki.baihongyu.com/