首页 > 其他分享 >进制转换伪代码和代码

进制转换伪代码和代码

时间:2022-10-04 22:24:02浏览次数:76  
标签:count 转换 进制 int 代码 base inputnum quotient

进制转换伪代码和代码

伪代码的实现

点击查看代码
#include <stdio.h>

int main()
{
	int inputnum,base,quotient = 1,remainder; 
	printf("请输入一个数,并输入目标进制:");
	scanf("%d,%d",&inputnum,&base);
	while(quotient != 0)
	{
		quotient = inputnum / base;
		remainder = inputnum % base;
		printf("%d",remainder);
		inputnum = quotient;
	}
	return 0;
}

直接实现伪代码有如下缺点:
1.输出的数字必须从右往左看才是正确结果

2.若进制数大于十,输出结果会有歧义

1000的十六进制表示为3E8,而该算法直接将E直接写成了14

所以需要一个能将原始输出数据倒序输出,并且将大于10的余数显示为字母的代码

C语言代码的实现

点击查看代码
#include <stdio.h>

int main()
{
	int inputnum,outputnum;
	int base,quotient,remainder;
	char remaindernum[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};	//所有可能的商 
    int count = 0;	//count:15-18行执行的次数 
	int remainderarray[100];	//将15-18行输出的所有商组成一个数组 
	printf("请输入一个数字,再输入目标进制:");
	scanf("%d,%d",&inputnum,&base);
	
	while(inputnum >= 1)
	{
		quotient = inputnum / base;
		remainder = inputnum % base;
		remainderarray[count++] = remainder;	//将商写进数组 
		inputnum = quotient;
	}

	if(base == 16)
	printf("结果是0x"); 
	else
	printf("结果是"); 
	
	for (count--; count >= 0; count--) 
	{
		outputnum = remainderarray[count];
		printf("%c", remaindernum[outputnum]);
	}	//将商数组的数字依次倒序输出 
	
	return 0;
}
备注:

此源代码来自百度知道,该代码运用了数组。我以此为思路,写出了输出数据的进制数可以自定义的代码,并且我根据自己的理解将变量名改成有实际意义的单词,添加了注释。
代码实现效果如图:

标签:count,转换,进制,int,代码,base,inputnum,quotient
From: https://www.cnblogs.com/Yu-Hongruojir/p/16754634.html

相关文章

  • 服务器跑代码总结
    服务器跑代码总结最近刚开始使用服务器跑一些深度学习模型,遇到了一些坑,导致代码运行效率很低,总结了一些应该注意的细节来提高准确率,特此记录。配环境换源等注意事项俗话......
  • 共轭梯度法示例代码
    当初第一次推共轭梯度法公式,觉得有点难,现在再回头看,共轭梯度法真是个漂亮的代码。最近写了个示例代码,录在这里吧。参考文献:[1]马红儒,“计算物理讲义”1.算法Ref.[1]......
  • 伪代码
    https://blog.csdn.net/weixin_43886797/article/details/85569998whitenum1whitenum2|num(1)-num(2)|=num(3)until|num(n-1)-num(n)|=|num(n)-num(n+1)|=constantwhitethea......
  • SqlSugar 代码生成 数据库及表
    在实际开发中如何在sqlsugar中通过model生成数据表呢?废话不说上代码一、引入sqlsugarcore  二、编写Model代码 先写一个model举例namespace用户管理.Models{......
  • GBRT代码详解(来自论文:Do We Really Need Deep Learning Models for Time Series Forec
    #-*-coding:utf-8-*-"""XGBoostWB_Forecasting_Using_Hybrid_DL_Framework_Pm2.5_(1,6)"""importsyssys.version#ImportLibrariesimportitertoolsimportp......
  • 关键点检测项目代码开源了!
     Datawhale干货 作者:闫永强,算法工程师,Datawhale成员本文通过自建手势数据集,利用YOLOv5s检测,然后通过开源数据集训练squeezenet进行手部关键点预测,最后通过指间的夹角算法......
  • 类型转换
    publicclassleixingzhuanhuan{publicstaticvoidmain(String[]args){inti=128;byteb=(byte)i;doubled=i;Syst......
  • 只懂黑盒测试也能学会的代码覆盖率及精准化测试
    测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分。——出自《计算机科学技术名词》第三版今天文章中......
  • 【Java练习题】Java 程序的输出 | 第二十一套(类型转换)
    难度级别:简单程序程序一1)以下程序的输出是什么?publicclassTest{publicstaticvoidmain(String[]args){intvalue=554;Stringvar=(String)value;/......
  • 恶意代码分析实战 windbg内核恶意代码分析 lab 10-1 10-2 10-3
    Lab10-01本实验包括一个驱动程序和一个可执行文件。你可以从任意位置运行可执行文件,但为了使程序能够正常运行,必须将驱动程序放到C:\Windows\System32目录下,这个目录在......