C-017.计算机中的进制、以及进制之间的转换

来源:互联网 发布:全球网络覆盖率 编辑:程序博客网 时间:2024/04/29 23:04

计算机中一般分:二进制、八进制、十进制、十六进制。


如何通过代码来互相转换:

void test(){    int a = 10;       //系统默认十进制    printf("%d\n",a);        int b = 0b1100;   //以0b、0B开头表示二进制    printf("%d\n",b);        int c = 010;      //以0开头表示八进制    printf("%d\n",c);        int d = 0xa;     //以0x开头表示十六进制    printf("%d\n",d);}int main(int argc, const char * argv[]) {    int a = 15;    printf("八进制 = %o\n",a);   //  八进制输出的格式符:%o , %O    printf("十进制 = %d\n",a);   //  十进制输出的格式符:%d , %i    printf("十六进制 = %x\n",a); //  十六进制的输出格式符  %x 输出的 a ~ f %X 输出 A~F                               //  在C语言中没有提供二进制的输出格式符    return 0;}


各进制之间是如何转换的:

int main(int argc, const char * argv[]) {    //如何获得10的二进制/*  十进制如何转换二进制 除2取余倒序排              商  余数        10/2  5   0        5/2   2   1        2/2   1   0        1/2   0   1     所以10的二进制是1010 */    int a = 0b1010;    printf("%d\n",a);//验证是否为10/*    同理,十进制转八进制 除8取余数倒序排               商  余数         10/8  1   2         1/8   0   1    所以10的八进制是12 */    /*     同理,十进制转十六进制 除16取余数倒序排             商  余数     100/16  6   4     6/16    0   6     所以100的十六进制是64     */       /*     二进制转换十进制 :每一位乘以对应位上的幂数然后相加     从右向左从0开始数,数到第几位就乘以2几次方然后相加就可以了     0b1010   1 * 2(3) + 0 * 2(2) + 1 * 2(1) + 0 * 2(0) = 10          对应的2的0-10次方 1024  512 256 128  64  32  16  8  4 2 1 */    /*     二进制转换八进制:一个八进制数就对应着3个二进制数,三个二进制数最大表示7,一个八进制数最大7          0b1,010 =  012          八进制转换二进制:一个八进制位转换为三个二进制位     01,2 =  0b1010     01,2,2 =  0b1010010     */    printf("%d,%d\n",0122,0b1010010);//验证/*     二进制转换16进制:一个十六进制位对应4个二进制位,四个二进制的数最大表示15,一个十六进制位最大表示15     四个二进制位为一组转换为一个16进制位     ob1111 =  8 + 4 + 2 + 1 = 15 = f          0b1,0001,0010 = 0x112          16进制转换二进制:一个十六进制位转换为4二进制位     0xabc = 0b1010,1011,1100      */        printf("%d,%d\n",0xabc,0b101010111100);    /*     八进制转16进制 == 八进制转换为二进制 -》 二进制转换16进制     */            /*     十进制转16进制:除以16取余倒序排     100 / 16   6  4     6 /  16    0  6     100 = 0x64          16进制转换10进制:每一位乘以对应位上的幂数然后相加     0x64 = 6 * 16 + 4 = 100          */    printf("%d,%d",100,0x64);        return 0;}



0 0
原创粉丝点击