zoukankan      html  css  js  c++  java
  • C语言:十进制进制转换为其他进制(思想:查表法)

    //

    //  main.c

    //  Hex conversion

    //

    //  Created by ma c on 15/7/22.

    //  Copyright (c) 2015年. All rights reserved.

    //  要求:十进制向任意进制之间的转换(查表法)。

     

    #include <stdio.h>

    //十六进制的转换

    void ToHex(int num)

    {

        int temp;

        char chs[8];//定义一个临时容器,长度为8,8X4=32位比特

        int pos=8;  //定义一个索引

        char ch[] = {'0','1','2','3',

                     '4','5','6','7',

                     '8','9','a','b',

                     'c','d','e','f'};

        printf("%d的十六进制是:",num);

        while(num!=0)

        {

            temp = num & 15;

            chs[--pos]= ch[temp];     //将查表中的数据存放到临时容器中。

            num = num >> 4;           //向左移动次低四位

        };

        for(int x=pos;x<8;x++)

        {

            printf("%c",chs[x]);

        }

        printf(" ");

    }

    //八进制的转换

    void ToOct(int num)

    {

        int temp;

        char chs[11];//定义一个临时容器

        int pos=11;  //定义一个索引

        char ch[] = {'0','1','2','3',

                     '4','5','6','7',

                     '8','9','a','b',

                     'c','d','e','f'};

        printf("%d的八进制是:",num);

        while(num!=0)

        {

            temp = num & 7;

            chs[--pos]= ch[temp];     //将查表中的数据存放到临时容器中。

            num = num >> 3;           //向左移动次低三位

        };

        for(int x=pos;x<11;x++)

        {

            printf("%c",chs[x]);

        }

        printf(" ");

    }

    //二进制的转换

    void ToBinary(int num)

    {

        int temp;

        char chs[32];//定义一个临时容器

        int pos=32;  //定义一个索引

        char ch[] = {'0','1','2','3',

                     '4','5','6','7',

                     '8','9','a','b',

                     'c','d','e','f'};

        printf("%d的二进制是:",num);

        while(num!=0)

        {

            temp = num & 1;

            chs[--pos]= ch[temp];     //将查表中的数据存放到临时容器中。

            num = num >> 1;           //向左移动次低一位

        };

        for(int x=pos;x<32;x++)

        {

            printf("%c",chs[x]);

        }

        printf(" ");

    }

     

    int main(int argc, const char * argv[])

    {

        ToHex(60);

        ToOct(60);

        ToBinary(60);

        printf(" ");

        return 0;

    }

     

  • 相关阅读:
    iOS"伪后台"机制下如何保持APP一直运行在后台(转)(实践通过)
    weak和strong
    iOS webview 清除缓存
    iOS隐藏状态栏
    IOS 在一个应用里打开另一个应用 及其 两个应用互相调用
    ios 检查ios设备是否安装了qq,微信等应用
    【干货篇】步步为营,带你轻松掌握jQuery!
    【化繁为简】非前端开发者的福音---CSS的预处理语言 Less&Sass
    JS中有关分支结构、循环结构以及函数应用的一些简单练习
    万物皆对象的JavaScript
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4695437.html
Copyright © 2011-2022 走看看