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 两个数字组成,使用时必须以0b0B(不区分大小写)开头,例如:

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语言中的各进制的转换方法的主要内容,如果未能解决你的问题,请参考以下文章

c语言实现二进制转换十进制的两种方法

c语言16进制转换为10进制数的函数是啥?

C语言怎么把字符串转换为可以用于计算的数字

n进制转成m进制的方法

c语言编程 把十进制转换为十六进制

c语言输入数字转换成2进制字符串原理