进制
所谓进制,其实大家平时时常都会遇到,如吃了9个苹果,再吃一个就是10个了,60分钟就是一小时。以上所举的两个例子就是十进制,六十进制的具体表现,他们都是逢十进一或逢六十进一的。其他进制还有二进制,三进制,四进制...n进制,只要数的出来都可以。但在现实中不会用那么多进制,一般有二,八,十,十六,六十进制等,而在游戏修改中用的最多的只有二,十,十六进制了。本讲也只以这三种进制的转换为主。
十进制与其他进制的转换
- 基数
逢n进一的n就是基数,基数为几就有几个数字,如二进制基数为二,则有0,1两个;八进制基数为八有0,1,2,3,4,5,6,7八个。总之从0开始,最后一位位n-1.而十六进制由于超过十,所以从十开始为A(10),B,C,D,E,F(15).
- 权值
所谓的权可以这样理解,一个数的每位都有一个权值m,并且权值为位数减一,如个位上的数的权值为0(位数1-1=0),十位为1(2-1=1).
十进制转换为其他进制,一句话可以完全概括了,** ‘除基取余’ **。如十进制的10/16=0余10,但十六进制是用A来表示的,又如33/16=2余1(33-2x16=1),第二次用商2/16=0余2,这个数就是21,(有后往前取)其他类推。十进制转化为二进制也是如此,如10/2=5余0,5/2=2余1,2/2=1余0,1/2=0余1,也就是1010了。
那么其他进制转化为十进制也可一句话概括,** ‘按权展开’ **。知道了权值m,就可以转化了。 首先,每一位的位数乘以基数n的m次方,如八进制个位3,3x80=3(80等于8的0次方),百位5,5x8^2=320.最后加总.
- 小练习
1.100d=( )h
2.100h=( )d
3.100b=( )d
4.100d=( )b
注:一般默认十进制以d结尾,八进制为o,二进制为b,十六进制为h,如十进制100为100d,二进制1001为1001b
答案:
64
256
4
1100100
十六进制的转换
二到十六进制的转换
普通方法:可通过将二进制转换为十进制,再转换为十六进制完成。
快速方法:
将二进制数由右至左分为几部分,每一部分有四位(因为2的4次方为16),不足四位的补0,如10011b,可分为0001和0011两部分,第一个补了3个0。然后将两部分分别化为十六进制,第一个是1,第二个是3。最后合起来,为13h。
十六进制到二进制的转换。同理,我们可将十六进制的每一位,一分为四,再合并即可。如13h,分为1和3两部分,在一分为四,0001和0011,合并去0,就是10011。