进制转换

进制转换

记住一些简单的规律,对以后的学习会有帮助的:

比如   11(2) == 2^2-1(10), 111(2)== 2^3-1(10),1111(2)== 2^4-1(10),11111111(2)== 2^8-1(10)

又比如 1111(2)== F(16),11111111(2)== FF(16)

注1:小括号的2表示进制的意思,即2代表二进制

注2:括号中 ^ 代表幂(次方)的意思,2^3即是2的3次幂

像一些进制之间的转换,我相信大家都不会陌生,我再讲一讲关于二进制(补码)转换为十进制的小方法吧,便于大家记忆。

二进制(补码)-〉十进制

我们都知道转换有无符号数和有符号数,无符号数按照以前的进制转换就可以了,如果是有符号数,转换就不是那么简单了。。。。。

对于有符号数(补码)来说:

如果符号位为0,表示该数为正数,转换和无符号数是一样的;

如果符号位为1,表示该数为负数,此时符号位的位权不变,但该位的权值应该乘以-1得到。

举个例子,将有符号数0011 1100转换为十进制数,与无符号数的做法是一样的:

       0*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0

=    32 + 16  + 8 + 4

=    60

然后如果符号位为1,表示这是一个负数,比如1011 1100那么只要将符号位的权值乘以-1即可得到:

      -1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0

=    -128 + 32 + 16  + 8 + 4

=    -68

再举个极端的例子,例如1000 0000:

      -1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^0

= -128

现在知道1000 0000为什么等于-128了吧!

十进制-〉二进制

从十进制数转换到二进制数,我们可以利用辗转相除法,当然如果你足够熟练的话,对于简单的十进制数,你会一目了然。

辗转相除不是取它的最大公约数,而是其余数。切记,切记。

即将待转换的十进制数不断地除以2,直到商为0,将每次得到的余数倒序拼凑起来,便是对应的二进制数。

好吧,NO pic you say a J8:

十进制数转换为二进制数

二进制数和十六进制之间的相互转换

他们之间的转换你只需要记住下面的表格就行了:

二进制与十六进制的相互转换

如果你遇到的二进制数有很多,从右往左,每四个为一组,查上表(时间长了,你就自然而然的熟了)

不过还有一种更简单的方法,那就是利用windows自带的计算器,点击开始菜单-〉附件-〉计算器或者直接windows+R键,输入calc;

利用计算器进行进制之间转换

左侧选择进制数,然后输入你要转换的数字:

计算器转换进制数

 

posted @ 2016-09-29 15:52  William已上线  阅读(368)  评论(0编辑  收藏  举报