-
2021-05-22 12:45:41
/*功能:将十进制数转换成十六进制数。
-------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
void main ()
{
int a,i,n;
char s[20];
printf("input a integer:\n");
scanf("%d",&a);
printf("需要转换成几进制:");
scanf("%d",&n);
void c10_16(char p[],int b,int n);
while(n!=0)
{
c10_16(s,a,n);
printf("需要转换成几进制:");
scanf("%d",&n);
}
}
/***********SPACE***********/
/*for(i=strlen(s)-1;i>=0;i--)
printf("%c",s[i]);
printf("\n"); } */
void c10_16(char p[],int b,int n)
{
int j,i=0;
/***********SPACE***********/
while (b>0) //或b!=0
{
j=b%n;
if(j>=0&&j<=9)
/***********SPACE***********/
p[i]=j+'0';
else p[i]=j+55; //10-16转化为A-F
b=b/n;
i++;
}
/**
*********SPACE***********/
p[i]='\0';
for(i=strlen(p)-1;i>=0;i--)
printf("%c",p[i]);
printf("\n");
}
更多相关内容 -
python实现十进制转换成十六以内任意进制
2021-01-07 07:03:19十进制转换成二进制,采用的是“除以2求余数”的计算方法,如下所示: “除以2”的过程,得到的余数是从低到高的次序,而需要的带的输出是从高位到低位(35对应的二进制是100011),因此需要一个栈来反转次序 from ... -
C语言实现十进制向任意进制转换
2018-12-27 11:21:40C语言实现十进制向任意进制转换代码,已经经过调试无问题。可以直接使用 -
php实现将任意进制数转换成10进制的方法
2020-12-18 05:16:09本文实例讲述了php实现将任意进制数转换成10进制的方法。分享给大家供大家参考。具体如下: php将任意进制的数转换成10进制,例如8进制转换成10进制,16进制转换成10进制 <?php # Show the steps involved in ... -
Golang如何实现任意进制转换的方法示例
2021-01-21 18:12:02最近因为工作的需要,需要写个短链服务,用到了10->62进制,网上找了一个,可以转换最多76位进制的博客,现在分享出来,下面话不多说了,来一起看看详细的介绍吧。 压缩数据用,无损压缩 示例代码: package main ... -
2~62位任意进制转换方法(c++)
2021-01-01 10:10:51考虑好按照16位(short)还是32位(int)抑或64位(long long),先求出二进制补码(这时候就正负数就统一了),将二进制数转换为十进制后在转换为其他进制(如果有小伙伴知道如何直接将二进制转换为任意进制的方法可以留言... -
进制转换:十进制转换为任意进制、任意进制转换为十进制
2021-04-24 11:29:47目录十进制转换为任意进制任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) { int k; stack<int> stk; while (num) { k = num % d; num = ...十进制转换为任意进制
//将10进制数num转换为d进制数 void convert_base(int num, int d) { int k; stack<int> stk; while (num) { k = num % d; num = num / d; stk.push(k); } while (!stk.empty()) { k = stk.top(); stk.pop(); printf("%x", k); } }
任意进制转换为十进制
#define MAXN 64 //64位CPU //将s的d进制数转化为10进制数 int restore(const char s[MAXN], int d) { int res = 0; int k; for (int i = 0; s[i] != '\0'; i++) { if (s[i] >= '0' && s[i] <= '9') k = s[i] - '0'; else if (s[i] >= 'A' && s[i] <= 'Z') k = s[i] - 'A' + 10; else k = s[i] - 'a' + 10; res = res * d + k; } return res; }
-
C++ 基础编程之十进制转换为任意进制及操作符重载
2021-01-20 05:55:46C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include #include using namespace... -
3、Py进制转换:十进制转任意进制数(自定义函数)
2022-02-12 15:24:32将十进制decimal system转换成二进制binary system print(bin(10)) 将十进制decimal system转换成八进制Octal print(oct(10)) 将十进制decimal system转换成十六进制Hexadecimal print(hex(10)) 二、自定义函数,...一、python自带函数bin()、oct()、hex()
局限性:只能将10进制转成2、8、16进制,无法实现转成其他进制数。
将十进制decimal system转换成二进制binary system
print(bin(10))
将十进制decimal system转换成八进制Octal
print(oct(10))
将十进制decimal system转换成十六进制Hexadecimal
print(hex(10))
二、自定义函数,实现十进制转任意进制数
假设有这么一道题:
请写出一个能将任意十进制数转换成任意2-64进制数的程序,64进制可使用阿拉伯数字0-9,小写字母a-z,大写字母A-Z,加上 @ 和 _ 符号。请写出一个程序,能将任意10进制数转换成任意2-64进制数。
解题思路梳理:
1、首先要注意一点,64进制下,64个数值表示符为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’, ‘@’, ‘_’],这个可以用代码自动拼接出来,也可以手写2、推算一下计算逻辑
十进制数44,转8进制,转换结果是54。44//8的结果是5余4,所以结果就是5和4拼接到一起变成54;十进制数99,转8进制,转换结果是143。99//8的结果是12余3,12继续除以8,得到1余4,所以结果就是最后的商1拼接余数4和上一个余数3,变成143;
十进制数31,转16进制,转换结果是1f。31//16的结果是1余15,由于余数大于9,要用字母表示,对应的字母是f,所以结果就是1拼接f变成1f;
程序计算逻辑应当是:
无限循环,将十进制数除以进制,除完如果商大于进制,继续用商除以进制,直到商小于进制即可,每次除完把余数记下来,最后跳出循环前,再按顺序把商和各个余数拼接起来即可;代码:
import string def f64(n, x): '''输入任意十进制数n要转换的进制x, 返回对应转换后的数。注意进制范围仅限2到64, 并且进制的值必须小于待转换的十进制数''' # 1、判断是否超出范围,是则返回ERROR if x < 2 or x > 64 or x > n: # 进制超出范围或者进制x大于要转换的十进制数 return 'ERROR' # 2、拼接出64进制下,1-64的数值表示符号 li1 = [i for i in range(10)] # 拼接出0到9的列表 li2 = list(string.ascii_letters) # 拼接出所有小写字母和大写字母的列表 li3 = ['@', '_'] li = li1 + li2 + li3 # li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '@', '_'] # 3、进制转换 result = '' while True: m = n // x # 商 r = n % x # 余数 print(r) if n < x: result = str(li[n]) + result # 跳出循环前,把最后的商,拼接在最前 break result = str(li[r]) + result # 把每次的余数拼接到前面 n = m return result print(f64(44, 8)) print(32*31+30)
-
任意进制转换十进制 -- c语言
2020-10-25 11:48:03任意进制转换十进制 – 数据结构c语言队列操作实现 代码也不算是任意进制,最高只能到十六进制。见谅! 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE...任意进制转换十进制 – 数据结构c语言队列操作实现
代码也不算是任意进制,最高只能到十六进制。见谅!
代码如下:#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 100 //静态顺序栈存储的最大空间 const char f[]="0123456789ABCDEF";//定义一个全局常量 ,方便导出十进制以上的不为数字形式的数据的显示 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if(getchar()=='\n') break; } typedef struct { char data[MAXSIZE];//分配给队列一个数组空间 int front;//队列头 int rear;//队列尾 }SqQueue; void InitQueue(SqQueue &Q)//初始化队列 { Q.front = Q.rear = 0;//使队列头和队列尾都为0 } void EnQueue(SqQueue &Q,char e)//入队 ,由于是循环队列,故少用一个元素空间,该函数在有MAXSIZE-1个元素时便已判断为满 { if((Q.rear+1)%MAXSIZE == Q.front)//判断队列是否为满 ,这里是循环队列队列满的条件是 (Q.rear+1)%MAXSIZE == Q.front { printf("队列已满!\n"); } else { if(Q.rear == MAXSIZE)//如果队尾超出最大值但队列又不满,便使其对最大值求余运算 Q.rear = Q.rear%MAXSIZE; Q.data[Q.rear] = e;//使变量e的值入队 Q.rear++;//并使队尾加一 } } char DeQueue(SqQueue &Q)//出队 { char a = '0'; if(Q.front == Q.rear)//首先判断队列是否为空,队列为空的条件是 Q.front == Q.rear printf("队列为空!\n"); else { a = Q.data[Q.front];//导出队头元素数据 Q.front++;//使队头加一 if(Q.front == MAXSIZE)//在队列非空的情况下,如果队头等于最大值,也对最大值做求余运算 Q.front = Q.front%MAXSIZE; } return a; } void InputNumber(SqQueue &Q,int &b)//数的输入 { char a; printf("即将输入的数为几进制:"); scanf("%d",&b); //输入的数为几进制 Interrupt();//终止scanf的连续输出 printf("请输入%d进制的数:",b);//数据的输入 while(1) { scanf("%c",&a); if(a == '\n')//当检测到enter键时终止死循环 break; EnQueue(Q,a);//进队 } } void Decimal(SqQueue Q,int b)//十进制转换操作 { int i,//记录次数 m = 0;//数的总和 bool c;//判断输入的数据是否在输入的进制范围内 char a;//用于接出队列数据 while(Q.front != Q.rear)//循环终止条件为队列为空 { c = true; a = DeQueue(Q);//出队 for(i=0;i<b;i++)//类型转换,使char转换成int { if(f[i] == a) { c = false; break; } } if(c)//判断输入的数据是否在输入的进制范围内 { printf("输入的数据错误!\n"); break; } m = (m + i) * b; } if(!c) printf("十进制为:%d\n",m/b); } int main() { int b; SqQueue Q; InitQueue(Q);//初始化队列,来装数据 InputNumber(Q,b);//输入操作 Decimal(Q,b);//十进制转换操作 return 0; }
但是代码不是太严格,也是只能输入指定数据。
结果演示:
错误输入结果演示(八进制最大数为7):
(完) -
十进制与任意进制转换
2016-07-05 08:53:03将十进制与任意进制相与转换,这是用DELPHI程序实现进制转换函数。 -
python 十进制转换成任意进制
2020-11-21 01:51:19原博文2015-04-08 08:36 −记得大学时代,参加学校举行的编程大赛,其中有道题是: 编写一函数,实现十进制转换成十六进制。 看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当... -
任意进制与十进制相互转换-java
2022-01-19 11:36:24任意进制转十进制:系数 * 基数^权重 ● 系数:当前所在位的数字 ● 基数:当前进制数字 ● 权重: 所在位-1,所在位由整数部分最小位为1, 向左(更高位)位数增1,向右(小数位)位数减1 十进制转任意进制:整数... -
进制1之十进制转换成任意进制
2022-01-25 20:43:084149: 进制1之十进制转换成任意进制 时间限制: 1.000 Sec内存限制: 128 MB 提交: 463解决: 291 [命题人:][下载数据: 30] 题目描述 将一个数m通过进制转换命令,将其进行转换(进制命令只有二进制、八进制、十六... -
任意进制转换十进制
2019-07-19 11:08:33公式:数字 × 进制 ×^...十六进制转换十进制:范围[0-9,a-f], 前缀“0x” 0x549fa:5 × 16^4 + 4× 16^3 + 9 × 16^2 + 15 × 16^1 + 10× 16^0=略 十进制转十进制:12345 = 1 × 10^4 + 2 × 10^3 + 3 × 10^... -
VC++ 将16进制转换成10进制
2021-03-15 15:10:26VC++将16进制转换成10进制,运行该程序后,只要输入任意十六进制数,就可以转换成相应的十进制数。以前发过类似程序,相对来说,本款的界面和功能都挺简单,可作为新手学习VC++的参考范例。以下两款同样来自VC++的... -
十进制转换成任意进制 c语言
2019-01-06 18:58:49今天搞懂了怎么把十进制转换成任意进制,我试了好几次有时逻辑上没有错误,但是我由于c语言基础不是太好,所以老是出现一些基础错误。以此来记录一下我要写的代码,以后继续铭记。 十进制转换任意进制,递归实现 ... -
十进制转换至任意进制数——C语言代码
2020-05-22 19:20:59课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的 -
使用JavaScript进行进制转换将字符串转换为十进制
2020-12-12 07:33:12将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制; 代码如下: parseInt(“11”, 2); // 3 2进制转10进制 parseInt(“77”, 8); // 63 8进制转10进制 ... -
C++任意进制转换为十进制
2018-08-12 16:09:53C++任意进制转换为十进制 我们知道任意进制转换为十进制,都是乘以基数的多少次方,然后相加。 废话不多说直接上代码。 #include<iostream> #include<string> using namespace std; ... -
十进制的转换与任意进制的互转
2020-01-08 20:50:07一、十进制转任意进制: 十进制转任意进制时,将这个十进制...此时,得到若干个余数,把这些余数按从后到先的顺序排列起来,那么这个排列起来的值即为该十进制转换成二进制的值。计算如图所示: 最后得到的余数... -
十进制与任意进制的转换方法(整数and小数)
2021-07-16 17:32:40十进制和任意进制互相转换的方法,包括小数的转换方法。 -
关于java实现十进制转换为任意进制
2021-12-03 15:26:51首先十进制转换为任意进制我们需要考虑如下几种情况 1.转换为正数10十进制之内的进制 2.转换为正数10进制之外的进制 3.转换为负数进制 第一步普通的转换进制 通过简单地模拟就可以做到,无非是取余操作,然后把对应... -
Java 任意进制转换(两种方式)
2021-03-06 04:42:05本文提供两种Java实现任意进制转换的方法:方法一:利用 Integer 实现进制转换1、 Integer类的方法toBinaryString(),Integer.toOctalString(), Integer.toHexString()可实现十进制分别转换成二进制、八进制和十六... -
进制转换(十进制转换成任意进制)
2019-11-09 11:26:19输入一个十进制整数m,转换成任意进制n(二--十六进制) 题目分析(方法): m除n取余 余数小于10,加48 48是0的ASCII码值 比如9+48 则变为9的ASCII码值 余数大于等于10,加55 65是字符A的ASCII码值 代码展示: #... -
进制转换C语言实现(十进制转换为任意进制)
2018-12-20 21:20:18输入一个十进制数和R(表示要转换成R进制),输出转换后的数。 事例 例如:输入 10 2 输出 1010 源代码如下: #include<stdio.h> #include<string.h> //int n,num[15],r,... -
java十进制转换成任意进制
2018-03-05 13:53:35System.out.print(“请输入想要转换的进制:”); buf = new BufferedReader(new InputStreamReader(System.in)); base = Integer.parseInt(buf.readLine());//将转换为的进制 System.out.println(Switch(num,...