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。

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

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/258621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-15 12:50
下一篇 2024-12-15 12:50

相关推荐

  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29

发表回复

登录后才能评论