动态 版块 发帖 消息 我的
小绿叶技术博客
小绿叶技术博客
小绿叶技术Lv154   
c 语言进制数 转换 10 16 2     


#include <stdio.h>
#include <string.h>
#include <math.h>

int s10z16()
{
    int x;
    printf("请输入10进制数,转为 16 进制:  ");

    scanf("%d", &x);
    char arr[100] = { 0 };     //因为十六进制中会出现A\B\C\D\E\F等字符,所以保存余数的数组类型应定义为char
    int i = 0, j = 0;
    while (x)
    {
        arr[i++] = x % 16;
        x /= 16;
    }
    for (j = 0; j < i; j++)
    {
        //将取出的余数转换为对应的字符
        switch (arr[j])
        {
        case 10:arr[j] = 'A'; break;
        case 11:arr[j] = 'B'; break;
        case 12:arr[j] = 'C'; break;
        case 13:arr[j] = 'D'; break;
        case 14:arr[j] = 'E'; break;
        case 15:arr[j] = 'F'; break;
        default:arr[j] += 48;
        }
    }
    for (j = i - 1; j >= 0; j--)
    {
        printf("%c", arr[j]);//逆序打印
    }
    printf("\n");
    return 0;
}

void s16z10()
{
    int a=0;
    int i=0;

    printf("请输入16进制数: ");
    scanf("%x",&a);
    printf("%d",a);

}

void s10z2()
{
    int num;int temp;int i=0;
    int arr[999];
    printf("请输入一个十进制数:");
    scanf("%d", &num);
     do
    {
    temp=num%2;
    num=num/2;
    arr[i++]=temp; 
    }
    while (num!=0);
    for (int j = i-1; j>=0; j--)
   printf("%d",arr[j]);
   printf("\n");
}

int main()
{


    int grade;
    printf("请选择需要被转换的进制类型 1. 10转2进制; 2. 16转10进制; 3. 10转2进制  :  ");
    scanf("%d", &grade);
    printf("当前输入的值为: %d \n",grade);
   /* 局部变量定义 */

 
   switch(grade)
   {
   case 1 :
      printf("当前是十转十六进制\n" );
      s10z16();
      break;
   case 2 :
      printf("十六转十进制\n" );
      s16z10();
      break;
   case 3 :
      printf("十转二进制\n" );
      s10z2();
      break;
   default :
      printf("输入错误,请重新输入...\n" );
   }
   
   return 0;

}





 2  已被阅读了899次  楼主 2023-05-05 15:15:30
回复列表
admin
2F
小绿叶技术Lv154   
https://blog.csdn.net/stwzx/article/details/121519322
 0   2023-05-09 20:11:36  回复

回复:c 语言进制数 转换 10 16 2

guest
登录之后更精彩~
Powered by HadSky 7.12.10
© 2015-2024 PuYueTian
您的IP:44.200.86.95,2024-05-30 06:02:29,Processed in 0.01659 second(s).
Powered by HadSky
小绿叶技术博客