首页 > 其他分享 >进制转换

进制转换

时间:2023-04-23 17:22:30浏览次数:28  
标签:转换 进制 temp int decimal num printf 数制

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define MAXCHAR 101		//最大允许字符串长度
//将字符转换成数字
int char_to_num(char ch)
{
	if (ch >= '0' && ch <= '9')
		return ch - '0';
	else
		return ch - 'A' + 10;
}
//将数字转换成字符
char num_to_char(int num)
{
	if (num >= 0 && num <= 9)
		return (char)('0' + num - 0);
	else
		return (char)('A' + num - 10);
}
//其他数制转换成十进制
long source_to_decimal(char temp[], int source)
{
	long decimal_num = 0;		// 存储展开之后的和
	int length;
	int i;
	for (i = 0; temp[i] != '\0'; i++);
	length = i;
	for (i = 0; i <= length - 1; i++)	//累加
		decimal_num = (decimal_num * source) + char_to_num(temp[i]);
	return decimal_num; 
}
//十进制转换成其他数制
int decimal_to_object(char temp[], long decimal_num, int object)
{
	int i = 0;
	while (decimal_num)
	{
		temp[i] = num_to_char(decimal_num % object);	//求出余数并转换为字符
		decimal_num = decimal_num / object;		//用十进制数除以基数
		i++;
	}
	temp[i] = '\0';
	return i;
}
//逆序输出新数
void output(char temp[], int length)
{
	int i;
	for (i = length - 1; i >= 0; i--)	//输出temp数组中的值
		printf("%c", temp[i]);
	printf("\n");
}
int main()
{
	int source;			//存储原数制
	int object;			//存储目标数制
	int length;			//存储转换成目标数制后字符数组的长度
	long decimal_num;	//存储转换成的十进制数
	char temp[MAXCHAR];	//存储待转换的数值和转换后的数值
	int flag = 1;		//存储是否退出程序的标志
	while (flag)		//利用输出的flag值控制循环
	{
		printf("转换前的数是:");
		scanf("%s", temp);
		printf("转换前的数制是:");
		scanf("%d", &source);
		printf("转换后的数制是:");
		scanf("%d", &object);
		printf("转换后的数是:");
		decimal_num = source_to_decimal(temp, source);
		length = decimal_to_object(temp, decimal_num, object);
		output(temp, length);
		printf("继续请输入1,否则输入0:\n");
		scanf("%d", &flag);
	}
}

标签:转换,进制,temp,int,decimal,num,printf,数制
From: https://www.cnblogs.com/258-333/p/17347145.html

相关文章

  • JavaScript的类型转换(字符转数字,数字转字符)
    在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使用Integer.valueOf()。可见,不能把JavaScript中的类型转换看作为“强制类型转换”。在JavaSc......
  • 盘点一份JS逆向代码转换为Python代码的教程
    今日鸡汤云母屏风烛影深,长河渐落晓星沉。大家好,我是Python进阶者。前言前几天在Python星耀和最强王者交流群里边,好几个人都在问JS逆向的视频和相关代码,看来都在学习进阶的知识,真是卷不动了。正好这几天我也在看JS的部分学习资料,看到一个还不错的案例,这里拿出来给大家分享一下,也当记......
  • CAN总线分析仪工具-CAN转USB智能协议转换器
    ECAN-U01CAN转USB协议转换器CAN波特率:出厂默认100K通讯接口:USB电压范围:8~28vDC产品尺寸:102*64*24mm产品介绍:ECAN-U01是集成2路CAN接口的高性能型CAN-bus总线通讯分析仪。该分析仪可兼容USB2.0总线全速规范,PC端可以通过USB接口快速连接至CAN-bus网络,构成现场......
  • jackson将java对象转换为json字符串
    1.1. 下载jacksonJackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。下载地址:http://jackson.codehaus.org/1......
  • 字节序转换
    #include<boost/detail/endian.hpp>#include<boost/static_assert.hpp>#include<boost/type_traits.hpp>#include<stdexcept>//Little-endianoperatingsystems://---------------------------------//Linuxonx86,x64,AlphaandIt......
  • Unicode编码与中文的转换
    1.1. 将unicode编码转换为中文publicStringdecodeUnicode(Stringsrc){char[]in=src.toCharArray();charaChar;char[]out=newchar[src.length()];intoutLen=0;intoff=0;intend=src.length();whil......
  • Json字符串转换为java对象
    1.  Json字符串转换为java对象1.1. Json字符串转换为javabeanJson2Bean.javapackagejackson;importjava.io.IOException;importorg.codehaus.jackson.map.ObjectMapper;publicclassJson2Bean{publicstaticvoidmain(String[]args)throwsIOExcepti......
  • 宽带( Mb/s ) GB/s, Gb/s, MB/s, Mb/s, KB/s, Kb/s 之间的转换
    Mb/s是我们拉宽带时候说的几兆2M(2Mb/s)ps的意思是每秒/s的意思也是每秒,不通的表现手法,p指per的缩写。意为每秒。所以Mbps就是Mb/s。5Gb/s734471KB/s=5738Mb/s=5.6Gb/s在计算机科学中,bit是表示信息的最小单位,叫做二进制;一般用0和1表示。Byte字节,由8个位(8bit)组成一个字节(1......
  • time&datetime&string相互转换
    time&datetime&string相互转换importdatetimeimporttime#日期时间字符串st="2017-11-2316:10:10"#当前日期时间dt=datetime.datetime.now()#当前时间戳sp=time.time()#1.把datetime转成字符串defdatetime_toString(dt):print("1.把datetime转成......
  • bash shell下最方便的字符串大小写转换方法
     用tr需要新增变量,用declare或typeset需要在变量赋值前或者赋值后单独声明,都有些麻烦此方法为bash4.0以后新增,bash4.02009年发布$test="abcDEF"#把变量中的第一个字符换成大写$echo${test^}AbcDEF#把变量中的所有小写字母,全部替换为大写$echo${test^^}ABCDEF#......