做一个默默无私奉献的程序猿

进制的讲解

2017-11-01  本文已影响97人  长风留言

1、什么是进制

    进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
接下来我将一一的对这些常用的进制进行讲解,以及它们之间的转换。

2、二进制

1、什么是二进制?

二进制就是只有0和1两种表达形式的计数,简称二进制,我们的计算机存储数据的时候都是采用二进制进行存储。表达一个二进制数,每一位最大值不能超过1,

2、二进制的写法

    例如 : 01011001
           10100110
           01101010
           10101100
           
           二进制的后缀:b   例如:10011001b,这里需要注意一下,就是在程序编程的时候,要想表达一个二进制数,那么需要给它加一个前缀:0b,如:0b00000001。

3、八进制

1、什么是八进制?

概念在这里我就不多说了,那么八进制它的表达形式取值只能从0~7取,也就是说,表达一个八进制数,每一位最大值不能超过7。

2、八进制的写法

    例如: 057
            010
            076
            025
            
            八进制的前缀:0  如上所示

表达一个二进制和八进制的示例代码:

main(int argc, const char * argv[]) {
   
    int a = 0b00000001;//这就是在程序编程时需要表达的一个二进制数
    
    int b = 057;//表达一个8进制数
    
    printf("%d\n%d\n",a,b);
    
    return 0;
}

4、十进制

1、什么是十进制?

十进制是我们最常见的一种计数方式,那么十进制每一位的表达形式只能从0~9取,每一位最大值不能超过9

2、十进制的写法

    例如:18
         20
         98
         6785
         
         注意;十进制数的写法就喝我们平时数学上的数字表达是一样的,在这里就不做过多的强调。

5、二进制和十进制之间的转换

二进制转十进制

对于二进制转十进制的规则是,以2为底,从低位向高位对每一位进行2幂次方,然后把每一位2的幂次方进行与本身相对应的位的一个乘积在相加。具体实现如下:
例如:     0   1   0   1   1   0   1   1 (八位的一个二进制数)
         2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
    转化为十进制:直接把上面的以2为底的幂进行每一位相乘求和
        0*2^7+1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+1*2^1+1*2^0 = 91
   
   当然,二进制转十进制很简单,这里就不做过多的例子介绍。

十进制转二进制

十进制转二进制就是对十进制数的一个以2为除数的求余过程,具体计算过程如下:

例如:  请把57转化成二进制数
    57 / 2  = 28 ...... 1
    28 / 2 = 14 ......0
    14 / 2 = 7 ......0
    7 / 2 = 3 ...... 1
    3 / 2 = 1 ...... 1
    1 / 2 = 0 ...... 1
    注意:在写二进制结果的时候,顺序是倒着写噢。
  那么:转换结果为 00111001。

6、二进制和八进制之间的转换

二进制转八进制

对于二进制转八进制,有一句口诀:三位二进制数对应一位八进制数

例如:二进制  (补一个0)--> 010  001  101   (八位二进制数)
    八进制     2    1    5
    这里需要补充一点就是,任何进制计数,高位都是在左边,右边为低位,在高位前补零,那么对于整个数值来说是没有变化的,但是,千万不能在低位后面补零。在进行二进制转八进制时,必须从右往左进行3位二进制为一个断点。在高位时,如果不足3位,那么我们需要在最高位的前面补零。

八进制转二进制

对于八进制转二进制,有一句口诀:一位八进制数对于3位二进制,

例子和上面的这个例子相反:
八进制     0215
二进制    000 010 001 101  
那么在写结果的时候,一般写成: 10001101.

7、八进制和十进制之间的转换

八进制转十进制

八进制转十进制其实是和二进制转十进制的计算方式一样,不同的就是,八进制是以8为底,而二进制是以2为底,那么,后面说到十六进制的时候,也是一样的道理,十六进制转十进制是以16为底,其他的都和二进制一样。所以这里我就不在举例了。

十进制转八进制

对于十进制转八进制和二进制也是差不多的,只是除数变为8进行求余。这里也不多说了,因为我们在学习的过程中要学会举一反三。

8、十六进制

1、什么是十六进制?

十六进制是我们程序或者内存地址的一个常用的一种表达,每一位的取值范围为0~9和A~F,那么在这里,A对于的就是10,B对应的就是11,以此类推,F就是15,所以,十六进制是逢16进1.十六进制的写法: 0xcf   其中0x表示的是十六进制的前缀,声明这个数是十六进制数,后面的cf就是数值,当然这里字符的大小写并没有影响。

例如:0xfc   0x1f  0xffdd 

9、二进制和十六进制之间的转换

1、二进制转十六进制

 二进制转十六进制,有一句口诀:四位二进制数对应一位十六进制数
             8421(码)
例如  二进制  0110 1010
    十六进制   5    A     结果:0x5A.
这里提到8421码,简单解释一下,8421码是为了程序员方便快捷的对进制之间的转换而构造的,他们都是2^0 ~ 2^3 的一个值,

2、十六进制转二进制

十六进制转二进制,有一句口诀:一位十六进制数对应4位二进制数
转发和八进制转二进制是差不多的,这里就不举例了。

总结:

进制与进制之间的转换是有一定的规律的,都是相互类似的,记住不同点。要学会举一反三。这里没有提8进制和16进制,其实,学者应该已经想到了,我们是可以通过二进制作为中间的桥梁来进行转换的,那么这个过程就由读者自行去尝试和练习。

结尾

最后,希望读者在读文章的时候发现有错误或者不好的地方,欢迎留言,我会及时更改,感谢你的阅读和评论已经点赞收藏。
上一篇 下一篇

猜你喜欢

热点阅读