精华内容
下载资源
问答
  • 任意进制转换成十进制的方法
    千次阅读
    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");

    }

    更多相关内容
  • 十进制转换成二进制,采用的是“除以2求余数”的计算方法,如下所示: “除以2”的过程,得到的余数是从低到高的次序,而需要的带的输出是从高位到低位(35对应的二进制是100011),因此需要一个栈来反转次序 from ...
  • C语言实现十进制任意进制转换代码,已经经过调试无问题。可以直接使用
  • 本文实例讲述了php实现将任意进制数转换10进制的方法。分享给大家供大家参考。具体如下: php将任意进制的数转换10进制,例如8进制转换成10进制,16进制转换成10进制 <?php # Show the steps involved in ...
  • 最近因为工作的需要,需要写个短链服务,用到了10->62进制,网上找了一个,可以转换最多76位进制的博客,现在分享出来,下面话不多说了,来一起看看详细的介绍吧。 压缩数据用,无损压缩 示例代码: package main ...
  • 考虑好按照16位(short)还是32位(int)抑或64位(long long),先求出二进制补码(这时候就正负数就统一了),将二进制数转换为十进制后在转换为其他进制(如果有小伙伴知道如何直接将二进制转换任意进制方法可以留言...
  • 目录十进制转换为任意进制任意进制转换十进制 十进制转换为任意进制 //将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++ 基础编程之十进制转换任意进制及操作符重载  最近学习C++ 的基础知识,完成十进制转换任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include #include using namespace...
  • 十进制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):
    在这里插入图片描述
    (完)

    展开全文
  • 十进制任意进制相与转换,这是用DELPHI程序实现进制转换函数。
  • python 十进制转换成任意进制

    千次阅读 2020-11-21 01:51:19
    原博文2015-04-08 08:36 −记得大学时代,参加学校举行的编程大赛,其中有道题是: 编写一函数,实现十进制转换成十六进制。 看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当...
  • 任意进制十进制:系数 * 基数^权重 ● 系数:当前所在位的数字 ● 基数:当前进制数字 ● 权重: 所在位-1,所在位由整数部分最小位为1, 向左(更高位)位数增1,向右(小数位)位数减1 十进制任意进制:整数...
  • 4149: 进制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进制,运行该程序后,只要输入任意十六进制数,就可以转换相应的十进制数。以前发过类似程序,相对来说,本款的界面和功能都挺简单,可作为新手学习VC++的参考范例。以下两款同样来自VC++的...
  • 十进制转换成任意进制 c语言

    千次阅读 多人点赞 2019-01-06 18:58:49
    今天搞懂了怎么把十进制转换成任意进制,我试了好几次有时逻辑上没有错误,但是我由于c语言基础不是太好,所以老是出现一些基础错误。以此来记录一下我要写的代码,以后继续铭记。 十进制转换任意进制,递归实现 ...
  • 课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
  • 任意进制字符串转换十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制; 代码如下: parseInt(“11”, 2); // 3 2进制转10进制 parseInt(“77”, 8); // 63 8进制转10进制 ...
  • C++任意进制转换十进制

    万次阅读 2018-08-12 16:09:53
    C++任意进制转换十进制 我们知道任意进制转换十进制,都是乘以基数的多少次方,然后相加。 废话不多说直接上代码。 #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; ...
  • 十进制转换任意进制的互转

    千次阅读 2020-01-08 20:50:07
    一、十进制任意进制十进制任意进制时,将这个十进制...此时,得到若干个余数,把这些余数按从后到先的顺序排列起来,那么这个排列起来的值即为该十进制转换成二进制的值。计算如图所示: 最后得到的余数...
  • 十进制任意进制互相转换方法,包括小数的转换方法
  • 首先十进制转换任意进制我们需要考虑如下几种情况 1.转换为正数10十进制之内的进制 2.转换为正数10进制之外的进制 3.转换为负数进制 第一步普通的转换进制 通过简单地模拟就可以做到,无非是取余操作,然后把对应...
  • 本文提供两种Java实现任意进制转换方法方法一:利用 Integer 实现进制转换1、 Integer类的方法toBinaryString(),Integer.toOctalString(), Integer.toHexString()可实现十进制分别转换二进制、八进制和十六...
  • 输入一个十进制整数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&lt;stdio.h&gt; #include&lt;string.h&gt; //int n,num[15],r,...
  • java十进制转换成任意进制

    千次阅读 2018-03-05 13:53:35
    System.out.print(“请输入想要转换进制:”); buf = new BufferedReader(new InputStreamReader(System.in)); base = Integer.parseInt(buf.readLine());//将转换为的进制 System.out.println(Switch(num,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,542
精华内容 43,816
关键字:

任意进制转换成十进制的方法