C语言中的各进制的转换方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的各进制的转换方法相关的知识,希望对你有一定的参考价值。
C++的,如果要TC的将中文改为English就行了#include<stdio.h>
#include<math.h>
void ten_two()
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",&num);
for( i = 0 ; 1 ; i++)
//转换为二进制并存入数组
arr[i] = num % 2;
num = num / 2;
if(num == 0)
break;
printf("转换为二进制:"); //打印
for(; i >= 0 ; i-- )
printf("%d",arr[i]);
printf("\n");
void ten_eight()
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",&num);
for( i = 0 ; 1 ; i++)//转换为八进制并存入数组
arr[i] = num % 8;
num = num / 8;
if(num == 0)
break;
printf("转换为八进制:"); //打印
for(; i >= 0 ; i-- )
printf("%d",arr[i]);
printf("\n");
void ten_sixteen()
int num, i;
int arr[20];
printf("请输入一个十进制数:");
scanf("%d",&num);
for( i = 0 ; 1 ; i++) //转换为二进制并存入数组
arr[i] = num % 16;
num = num / 16;
if(num == 0)
break;
printf("转换为十六进制:"); //打印
for(; i >= 0 ; i-- )
switch(arr[i])
case 10 : printf("A");break;
case 11 :printf("B");break;
case 12 :printf("C");break;
case 13 :printf("D");break;
case 14 :printf("E");break;
case 15 :printf("F");break;
default :printf("%d",arr[i]);
printf("\n");
void two_ten()
long num;
int b,TheTen=0,Total=0;
printf("请输入一个二进制数(只包含0或1):");
scanf("%ld",&num);
while(num)
b=num-(int)(num/10)*10;
TheTen+=b*pow(2,Total);;
Total++;
num=(int)(num/10);
printf("转换为十进制:"); //打印
printf("%d",TheTen);
printf("\n");
void eight_ten()
int num, i;
int arr[20];
printf("请输入一个八进制数(只由0~7之前的数组成):");
scanf("%o",&num);
printf("转换为十进制:"); //打印
printf("%d",num);
printf("\n");
void sixteen_ten()
int num, i;
int arr[20];
printf("请输入一个十六进制数(只由0~9和A~F之前的数组成):");
scanf("%X",&num);
printf("转换为十进制:"); //打印
printf("%d",num);
printf("\n");
void main()
int select;
do
printf("0 - 退出,1 - 十进制转二进制,2 - 十进制转八进制,3 - 十进制转十六进制,4 - 二进制转十进制,5 - 八进制转十进制,6 - 十六进制转十进制\n");
scanf("%d",&select);
switch(select)
case 1 : ten_two(); break; //十进制转二进制
case 2 : ten_eight(); break; //十进制转八进制
case 3 : ten_sixteen(); break; //十进制转十六进制
case 4 : two_ten(); break; //二进制转十进制
case 5 : eight_ten(); break; //八进制转十进制
case 6 : sixteen_ten(); break; //六十进制转十进制
default : printf("您的输入有误,请重新输入!"); break;
if(select == 0)
break;
while(1);
参考技术A #include <stdio.h>
#include <conio.h>
int main (void)
int num;
int binary[33];
int i;
printf("\n 二进制计算\n");
printf("===================================\n");
printf("请输入想要计算二进制的正整数:");
scanf("%d",&num);
printf("===================================\n");
for(i = 0;i < 32;i++)
binary[i] = num % 2;
num /= 2;
printf("输出的32位二进制为:\n");
for(i = 31;i >= 0;i--)
printf("%d",binary[i]);
printf("\n===================================");
getch();
return 0;
参考技术B 怎么转换? 用什么方法! 用一个函数搞定任意进制间的转换 #include <stdio.h> #include <string.h> #include <math.h> /*该函数可以实现小于整型G
C语言中的进制转换
一、首先有二进制、八进制、十进制、十六进制四种类型
1、八进制整常数:八进制整常数必须以0开头,即 以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
例如:
016(八进制)--- 14(十进制)
0101(八进制)--- 65(十进制)
2、二进制数:
由 0 和 1 两个数字组成,使用时必须以0b
或0B
(不区分大小写)开头,例如:
3、十进制数:十进制整常数没有前缀。其数码为0~9。
4、十六进制数:十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
例如:
0x06(十六进制)----6(十进制)
0x0F(十六进制) --- 15(十进制)
0x7E6(十六进制) ---- 2022(十进制)
0X2A(十六进制) --- 42 (十进制为)
0x700(十六进制)--- 1792(十进制)
二、进制转换规则
1. r 进制数 an an–1…a1 a0 对应的十进制数为:
an×rn + an–1×rn–1 + … + a1×r1 + a0×r0
2.其他进制转换成十进制:
除 r 取余数,直至商为零,余数倒序排序。
3.进制之间的转换
以上是关于C语言中的各进制的转换方法的主要内容,如果未能解决你的问题,请参考以下文章