C语言笔记-进制转换

一、进制转换
    为什么要使用二进制、八进制、十进制、十六进制
        因为现在的CPU只能识别高低电平,只能对二进制数据进行计算
        虽然二进制的数据可以直接被CPU识别计算,但是不方便书写、记录,把二进制的数据转换成八进制是为了方便记录到文档中
        由于CPU的位数的发展不断增加,由8位逐渐发展到现在的64位,因此八进制就不能满足需求了,所以发展到十六进制,但是由于历史原因八进制还不能完全淘汰

十进制转二进制:(转其他进制)
    求余法:用2对数据求余,然后继续对商求余,直到商为0结束,该过程中产生的余数就是该数据的二进制(逆序)
        n%2 == 1\0
        商%2 == 1\0
        ...
        直到商为0
        余数的逆序就是n的二进制
    127 % 2     1
    63  % 2     1
    31  % 2     1
    15  % 2     1
    7   % 2     1
    3   % 2     1
    1   % 2     1
    0
    01111111

    求权法:
        数据 - 2^(n-1)如果够减,那么第n位就是1,否则就是0,直到把数据减为0
    137
    128 64 32 16 8 4 2 1
    1   0   0  0 1 0 0 1
    手算: 86 72 112 176

    练习1:输入一个正整

你可能感兴趣的:(c语言)