MTK ACC Mode配置使用ACCDET2引脚做中断源------之进制转换超详细通俗讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jspping/article/details/50297061

在做 MTK 方案的时候,修改有关 ACC 模块的时候,配置宏的时候,需要添加进制代码,因为进制是比较重要的东西所以单独拿出

来给大家说说怎么掌握好进制,希望大家在看完本篇文章之后 能更游刃有余的掌握进制以及进制的转换在日常的软硬交互、C/S交

互开发中,或指针、进制都充当着不可或缺的角色,那怎么样掌握好进制以及进制之间的转换呢

博主今天就带你玩转进制,让你很轻松的就能掌握,博主将按照最简单的方法配备图文,让你更加加深对进制的理解


开篇前,我们来想想,何谓进制?通俗的说就是逢几进一,比如十进制,就是逢十进一八进制,就是逢八进一,十六进制,就是逢

十六进一,然而很多这样的进制都在我们的日常生活中充当着必不可少的角色和组成部分

比如:我们的数学算术,采用的是国际标准,十进制,计算机的计算,显示都是十进制,除了计算机机器语言(二进制语言)和汇编语

言(变相的二进制英文代替语言,C的最原始语言)手机时钟、秒表、手表等,采用的是  60 进制,逢 60 进一,除了ms,也就是秒后

面的微秒年月日的月份采用的就是 十二进制,这些用到进制的案例都数不胜数,所以我们作为一位现代开发者,掌握进制是很重要

      十六进制要加 0x表示,例如:0xA1,0x13,0xFF
      十进制直接表示,例如:1,2,3,4,5,6
      八进制要加零表示,例如:00,01,02,03,04,05


八进制是 0-7 ,十进制是 0-9 ,唯独十六进制比较独特,我们看看它的对应关系

    /**
     * 十六进制对应关系
     * 
     * 0 → 0
     * 1 → 1
     * 2 → 2
     * 3 → 3
     * 4 → 4
     * 5 → 5
     * 6 → 6
     * 7 → 7
     * 8 → 8
     * 9 → 9
     * A → 10
     * B → 11
     * C → 12
     * D → 13
     * E → 14
     * F → 15
     * 
     * */

      ① 十六进制


      我们就以上述图片浅蓝色框里面的几个进制数开篇吧,分别拆分开来,并且换算成十进制表示形式


      0x500 1 0x1F0 0x800 0x20 ,首先我们去掉 0x 表示符号,对进制数字逐一进行分解


0x500 = 500  =  5*16+ 0*161  + 0*160  = 1280

0x1F0 = 1F0  =  1*16+ 15*161 + 0*160  = 496

0x800 = 800  =  8*16+ 0*161  + 0*160  =2048

0x20 = 20 =  2*161 + 0*160  =32

1 = 0x01


然后在给大家通俗一下十六进制的表示形式的意义,如下图:


我这样解释不知道你们是不是理解了,我就拿一个例子来更细化更详细的讲吧,就此如0xA1这个数,我们先去掉0x表示符号,那

剩下的就是A1了,因为A是代表10的,因为10没有满16所以不能进一,但是又不能直接写一个10,所以在计算机里用木字母A来

表示10,以此类推,还可以更通俗的理解成 A是十位数,1是个位数,1没有满16,所以不能进一,故个位数是1,然后十位数是

10,因为没有满 16 ,故不能进一位,所以写 10 ,但是在计算机里面 写10 是不规范的,而且计算机或语言开发者为了方便计算

就限定了十六进制9以上16以下 的数字用字母代替,表示位数一,即代表一位数字


因为在开发中,用的最多的就是十和十六进制,所以本篇重点只讲了十和十六进制,反正大致逻辑和关系都表里如一,只是表现

方式不一样和进制位不一样罢了,整体思想都一样


还有就是给大家一个小技巧来验证进制转换是否有误,如下代码:

    public static void main(String args[]) {
    	
        // h:十六进制
    	int x = 0x1F0;
    	
        // d:十进制
    	int y = 16;
    	
        // o:八进制
    	int z = 015;
    	
    	System.out.println(String.format("以十进制输出0x1F0为:%o", x));
    	System.out.println(String.format("以十进制输出0x1F0为:%d", x));
    	System.out.println(String.format("以十进制输出0x1F0为:%h", x));
    	System.out.println("**************************************");
    	System.out.println(String.format("以十进制输出0x1F0为:%o", y));
    	System.out.println(String.format("以十进制输出0x1F0为:%d", y));
    	System.out.println(String.format("以十进制输出0x1F0为:%h", y));
    	System.out.println("**************************************");
    	System.out.println(String.format("以十进制输出0x1F0为:%o", z));
    	System.out.println(String.format("以十进制输出0x1F0为:%d", z));
    	System.out.println(String.format("以十进制输出0x1F0为:%h", z));
    	
    }

输出的测试结果:

以十进制输出0x1F0为:760
以十进制输出0x1F0为:496
以十进制输出0x1F0为:1f0
**************************************
以十进制输出0x1F0为:20
以十进制输出0x1F0为:16
以十进制输出0x1F0为:10
**************************************
以十进制输出0x1F0为:15
以十进制输出0x1F0为:13
以十进制输出0x1F0为:d


相信看了这边博客,想必你已经对进制掌握已经相当熟练了吧?那还等什么,赶紧去练练手呗!谢谢观博!

阅读更多

没有更多推荐了,返回首页