输入一个十进制数N,将它转化为R进制数输出(C语言版)
我们先拿十进制转化为二进制来举例:
我在b站上学习到十进制转为二进制的算法为:
比如:十进制9转化为二进制的步骤为
根据思路代码为:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void change(int n)
{if (n > 0){change(n / 2);printf("%d", n % 2);}
}
int main()
{int n = 0;printf("input number:");scanf("%d", &n);printf("%d对应的二进制为: ", n);change(n);printf("\n");return 0;
}
再写十进制向R进制转化的问题:
转化的思路同十进制转化二进制,用÷商取余的方法来找到转化后的数。
代码为:
int main() {
int number; //输入的十进制数
int system; //输入需要转换的进制
char s[50];
int i; //用来存储进制转化后的长度
int length; //用来最后的打印
int flag; //用来存储输入数的+或-
printf("先输入一个整数,按空格后再输入转化的进制数\n");
while ((scanf("%d%d", &number , &system)) != EOF)
{i = 0;flag = 0; //等于0时代表正数if (number < 0) {number = -number; //取反flag = 1; //标记为-数}while (number){if (number % system <= 9) {s[i] = (number % system) + '0'; //数字加上’0’变成字符类型,因为‘1’的对应编码是49的二进制码,} //在ASCII码里‘0’对应的刚好是48的二进制码。所以加上‘0’,变成了字符 ‘1’else if (number % system == 10)s[i] = 'A';else if (number % system == 11)s[i] = 'B';else if (number % system == 12)s[i] = 'C';else if (number % system == 13)s[i] = 'D';else if (number % system == 14)s[i] = 'E';else if (number % system == 15)s[i] = 'F';number /= system;i++;}length = i;if (flag == 1)printf("-"); //如果是负数先打印出-for (i = length - 1; i >= 0; i--) //从后往前打印printf("%c", s[i]);printf("\n");}
return 0;
}
注释:
s[i] = (number % system) + '0'; //目的是将int类型转化为char类型。
for (i = length - 1; i >= 0; i--) //从后往前打印printf("%c", s[i]); //从十进制到二进制可知,从后往前输出,所以用for循环从后向前输出。
输入一个十进制数N,将它转化为R进制数输出(C语言版)相关推荐
- 进制转化:从键盘接收一个4位的十进制数,将它转化为16进制并输出
;从键盘接收一个4位的十进制数,将它转化为16进制并输出 DATA SEGMENT NUM DW 0 CRLF DB 0AH,0DH,24H DATA ENDS STACK SEGMENT PA ...
- 给定一个十进制数,将其转化为N进制数-----17年滴滴笔试题
题目:给定一个十进制数M,将其转化为N进制数,其中2<=N<=16,其中N为32为整型数; 输入:M N,如7 2 输出转化结果:111 注意点:考虑负数的情况,记得添加负号(其实直接添加 ...
- 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出
输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...
- 将任意的十进制整数转换成任意R进制数(R在2-16之间)
在c语言中,编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间),源码如下所示: #include <stdio.h> int main(){ void change( ...
- 使用栈实现十进制数转化为N进制数
/* 使用栈求解及十进制数转化为N进制数 */ #include <iostream> #include <stack> using namespace std; vo ...
- 将十进制有理数转化为m进制数(C语言实现)
内容: 若将十进制有理数转换为r进制的数,应如何实现. 步骤: 1.算法分析: 进行算法分析前,首先需要了解一些进制转换的知识,十进制整数转换二制是采用"除2取余,逆序输出"的方法 ...
- (C++)除基取余法:将十进制数转化为Q进制数
所谓基,就是指将要转换成的进制Q. 除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数. 代码 ...
- 偶数乘2奇数乘3C语言,输入一个整数x,如果为偶数乘2,否则乘3,然后输出.C语言
编写一个程序,输入一个正整数,并做以下运算:如果为偶数,除以2,如果为奇数,乘3加1.得到的结果再按上 本人不会C#,算法相通,用c语言演示一下:#includevoidmain(void){intz ...
- [转载] python字符串转化为16进制数_python实用知识,数值类型和进制整数的转换
参考链接: 在Python中将整数int转换为字符串string 喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! 1.数值类型的转换 int()可以将字符串 ...
最新文章
- 如何配置IntelliJ IDEA发布JavaEE项目?
- seaborn可视化散点图并自定义可视化结果图像的大小(Change the Size of a Seaborn Plot)
- asp.net 备份和恢复SQL SERVER 数据库
- MYSQL内置函数总结
- css区块定位之浮动与清除属性
- java 格式化 布尔型_Java基础篇(1)-格式化
- linux就该这么学第八课
- 蜗牛星际NAS安装黑群晖V6.2.1+洗白+免U盘引导启动
- 欧洲语言框架A1到C2,法语等级 A1、A2、B1、B2、C1、C2
- 教你轻松删除PDF文件中的空白页
- ComposeOptions.kotlinCompilerVersion is deprecated
- 微信账号和系统账号绑定
- Windows下hosts文件的作用
- pandas中的freq和inferred_freq等时间参数究竟有哪些
- windows下编译chromium浏览器的方法
- word中编号样式库内找不到带圈编号的解决方案
- 大功率可控硅调压电路
- 山东电销机器人_青岛语音电销机器人 欢迎来电「山东启云创客网络科技供应」...
- LED音乐频谱之概述
- 首届“全国人工智能大赛”正式启动,作为大赛支撑平台,和鲸科技助力年度顶级AI赛事