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;

    }

     

  • 相关阅读:
    VBA的几个小Demo_2
    VBA的几个小Demo
    Django部署在阿里云服务器上
    python面试题及解析
    Django知识扩展
    Django文件下载2
    Django文件下载
    Django文件上传
    My_First_Web
    10个jQuery小技巧
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4695437.html
Copyright © 2011-2022 走看看