您的位置:

c语言输入进制转换文档介绍内容,C语言进制转换方法

本文目录一览:

C语言中如何用算法实现进制间的转化?

C语言中实现10进制转换为任意进制的过程为:

定义数组int rs[32],保存转换后的数据,整数的转换结果最多32位(4字节*8位)

定义一个数组char map[]={'0','1','2','3',...,'9','A','B',...'F'},完成相应数值对应的转换后的字符

输入10进制数(整数)num

转入转换进制基数(2-16)ind

循环对num进行模ind运算,得到余数存储到数组rs中

num缩小ind倍

当num为0时结束循环

反向输出数组rs中对应的各元素对应的map字符,得到转换结果

参考代码:

#include stdio.h

int main()

{

    char map[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    int i,c[32],num,ind;

    do {printf("input num: ");scanf("%d", num );}while(num0 );

    do {printf("input ind: ");scanf("%d", ind );} while( ind16||ind2);

    i=0;

    do {

        c[i++]=num%ind;

        num/=ind;

    } while(num!=0) ;

    for(i--;i=0;i--)

        printf("%c",map[c[i]] );

    printf("\n");

    return 0;

}

运行结果:

input num: 100

input ind: 2

1100100

input num: 100

input ind: 8

144

input num: 100

input ind: 16

64

C语言的进制转换程序

在这里献丑了!

1.将你输入的数通过字符串的方式存储是方便一下的计算的

正如你举得例子,输入137 数组中存入的是 字符型的137 要将

里面的每个字符型的数字转换成数值型的数字就得 *p-'0',因为

字符存储时实际存储的是字符的ASC码, 例如 输入 1(字符型)ASCII码为

49 若不减去0的ASC码 就会以49去参加运算

这个while循环是用于数制转换的.将八进制转换成10进制,其实就是将8进制数码按权展开,137=1*8^2+3*8^1+7*8^0

2这个while就是这个用处,一步一步看下去,加入输入为137存储为字符137

第一次是将字符型的1减去0的asc码就得到了数值型的1 1本来是最高位应该是但是这里得到的只有系数(姑且叫做系数吧而权为8^0=1),由于后面还有两个数,这样通过循环n=n*8+*p-'0';将1的权值提升到了8^2,对第二位也类似.

3.要进行浮点数的进制转换就得找准小数点的位置.然后按照类似的方法就可以了

C语言中的各进制的转换方法

C++的,如果要TC的将中文改为English就行了

#includestdio.h

#includemath.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);

}

C语言转换进制

#includeintmain(void){inta8,b10,c16;/*a8,b10,c16分别代表八进制数,十进制数和十六进制数*/scanf("%o%d%x",a8,b10,c16);printf("%o,%d,%x\n",a8,a8,a8);printf("%o,%d,%x\n",b10,b10,b10);printf("%o,%d,%x\n",c16,c16,c16);}要重复,添加循环就OK了。这里简单的实现你的输入和输出功能,并没有真正从运算规则上去进行转换,你也没做这样的要求,不知道是不是你想要的结果。

c语言中各种进制的转换规矩 详细些 最好是计算过程写出来

代码如下:(可以输出20位数)#includestdio.h

void transfer(int m,int change)

{

int aa[20],j,saveM=m;

for(j=0;m!=0;j++)

{

aa[j]=m%change;

m=m/change;

}

printf("十进制数%d的%d进制形式是:\n",saveM,change);

for(;j!=0;j--)

printf("%d ",aa[j-1]); //注意这空是填aa[j-1],而不是aa[j],因为上面那个循环进行到最后一步时,j++还是会运行一次,但是此时并没有给aa[j]赋值,因为循环结束

}

main()

{

int n,c;

printf("请输入一个整数\n");

scanf("%d",n);

printf("该整数是十进制数,你想将它转化成几进制数呢?\n");

getchar();

scanf("%d",c);

transfer(n,c);

} 功能说明:该函数可以将任意的十进制数转化成任意的N进制数。转化后的结果,每两位数之间用一个空格隔开。

希望可以帮到您,谢谢!

C语言进制转换

计算机中常用的数的进制主要有:二进制、八进制、十进制、十六进制。  

2进制,用两个阿拉伯数字:0、1;  

8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;  

10进制,用十个阿拉伯数字:0到9;  

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 

下面用余数短除法把十进制数转化为二进制数为例进行说明

1、明确问题。举个例子,我们现在是要将一个十进制数字156转换成二进制数字。先将这个十进制数作为被除数写在一个倒着的“长除法”的符号里。把目标数系的基数(在这里二进制是“2”)作为除数写在这个除法符号的外面。用这个方法将计算过程可视化会更方便理解,因为整个计算过程只需将数字一直除以2。

2、进行除法运算。把结果的整数部分(商数)写在长除法符号的下面,然后把它的余数(0 或 1)写在被除数的右边。

我们现在是以2为除数,因此得出的商为偶数,则余数为0;如果得出商为奇数,则余数记为1。

3、一直往下继续除,直到商为0为止。把每一个新的商数除以二,然后把余数写在被除数的右边。直到商数为0为止。

4、写出新的二进制数字。从最下面的余数开始,按顺序读到最上面。本例中,你会得到10011100。这就是十进制数字156的二进制形式。或者,我们可以以脚注等式的形式表达,即:15610 = 100111002

活用这个方法可以将所有十进制数字转换成任何进制表达。除数为2是因为我们最终想得到的以2为基数的数(即二进制数值) 。如果最终想得到其他数系的数字,用目标数系的基数代替这个方法里二进制的基数2 就可以了。例如,要得到基数为9的数,就用9来代替2作为除数 。最终的结果就是目标数系的数字表达。

扩展资料:

十进制---二进制

对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”

十进制---八进制

10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。

参考资料:百度百科——进制转换

c语言输入进制转换文档介绍内容,C语言进制转换方法

2022-11-30
c语言输入进制转换,c语言怎么转换进制

2022-12-02
c语言十进制换二进制,c语言二进制转换十进制方法

2022-12-01
相互转化c语言,用c语言进行进制转换

2023-01-07
c语言int强制转换double,c语言int强制转换16进

2023-01-04
c语言十进制转换为二进制,c语言十进制转换二进制库接口

2022-11-24
c语言里如何转换进制,怎么用c语言转换进制

2022-12-02
c语言知识笔记,c语言最全笔记

2023-01-04
c语言转换成语,用c语言进行进制转换

本文目录一览: 1、c语言怎么载入成语库 2、关于c语言成语的疑问 3、跪求c语言小游戏“成语接龙”代码,急急急!谢谢 4、C++设计猜成语程序 5、怎么用c语言选择结构输出一到七开头的成语? c语言

2023-12-08
c语言实现10进制转2进制,c语言10进制转2进制代码

2023-01-05
c语言二进制转换十进制详解

2023-05-18
c语言10进制转为2进制编码,c语言2进制转10进制算法

2023-01-08
c语言和c+转换,c++转换c语言

2023-01-03
c语言怎么将十进制转化为二进制,怎么将十进制转换为二进制c语

2022-11-27
c语言如何十进制转二进制,c语言怎么将十进制转二进制

2022-11-29
c语言如何转it,c语言如何转换进制

2022-11-27
c语言编程十进制转化为二进制,C语言十进制转化为二进制代码

2022-11-26
c语言10位转16位,16转10进制c语言

2022-11-24
C语言十六进制转十进制方法详解

2023-05-20
c语言135转8进制,8进制145转10进制

2022-11-24