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("\n");

}

//八进制的转换

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("\n");

}

//二进制的转换

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("\n");

}

 

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

{

    ToHex(60);

    ToOct(60);

    ToBinary(60);

    printf("\n");

    return 0;

}

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4695437.html,如需转载请自行联系原作者
目录
相关文章
|
存储 C语言
C语言实现二进制到十进制
C语言实现二进制到十进制
316 0
|
C语言
c语言点分十进制IP转整型
c语言点分十进制IP转整型
192 0
|
存储 C语言
C语言实现十进制转化为十六进制-------数组,switch语句,while循环语句
C语言实现十进制转化为十六进制-------数组,switch语句,while循环语句
594 0
|
存储 网络协议 算法
【C语言】进制转换无难事:二进制、十进制、八进制与十六进制的全解析与实例
进制转换是计算机编程中常见的操作。在C语言中,了解如何在不同进制之间转换数据对于处理和显示数据非常重要。本文将详细介绍如何在二进制、十进制、八进制和十六进制之间进行转换。
2649 5
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
545 1
|
存储 C语言
【C语言基础考研向】04整型进制转换
本文介绍了计算机中整型常量的不同进制表示,包括二进制、八进制、十六进制和十进制,并解释了它们之间的转换方法。以一个32位整型数为例,展示了其在不同进制下的表示形式及计算方法,特别指出在内存观察中常用十六进制,同时提到了小端存储方式对数据的影响。
443 9
|
存储 C语言
C语言18---常用的进制
C语言18---常用的进制
|
C语言
每天一道C语言编程(2^k进制数)
每天一道C语言编程(2^k进制数)
171 0
|
存储 编译器 C语言
爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)
爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)
635 0
|
C语言
C语言进制转换
C语言进制转换
159 0