精华内容
下载资源
问答
  • C语言教程:十进制转换任意进制
    千次阅读
    2021-03-02 15:55:43

    十进制转其他进制:是将十进制除于多少进制,取余;最后倒数排列即可。

    #include "stdio.h"
    #include "stdlib.h"
    #define N	10
    static void base_convert(void)
    {
        int num,base;
        int n[128];
        int i = 0;
        
    	printf("please enter the coverted num:");
        scanf("%d",&num);//输入任意的十进制
        printf("please enter the base:");
        scanf("%d",&base);//输入想要转的进制
        
        do
        {
            n[i] = num % base;//取余
       		num = num / base;
        	i++;
        }while(num != 0);
        
        for(i --;i >= 0;i--)
    	{
    		if(n[i]>=10)
    			printf("%c",n[i]-10+'A');
    		else
            printf("%d",n[i]);
    	}
        printf("\n");
    }
    
    int main()
    {
    	base_convert();
    	exit(0);
    }
    
    更多相关内容
  • C++ 基础编程之十进制转换为任意进制及操作符重载  最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include #include using namespace...
  • C语言实现十进制任意进制转换代码,已经经过调试无问题。可以直接使用
  • 一、python自带函数bin()、oct()、hex() 局限性:只能将10进制转成2、8、16进制,无法实现转成其他进制数。 将十进制decimal system...二、自定义函数,实现十进制转任意进制数 假设有这么一道题: 请写出一个能将任

    一、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)
    
    展开全文
  • 十进制转换成二进制 十进制转换成二进制,采用的是“除以2求余数”的计算方法,如下所示: “除以2”的过程,得到的余数是从低到高的次序,而需要的带的输出是从高位到低位(35对应的二进制是100011),因此需要一...
  • 课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
  • 十进制转换任意进制

    2019-02-12 16:02:01
    输入一个十进制数N,将它转换成R进制数输出。 输入: 输入数据包含多个测试实例,每个测试实例包含两个整数N和R(2&lt;=R&lt;=36). 输出: 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10...

    问题描述:

    输入一个十进制数N,将它转换成R进制数输出。

    输入:

    输入数据包含多个测试实例,每个测试实例包含两个整数N和R(2<=R<=36).

    输出:

    为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,16用G表示等等)。

    输入样例:

    7 2
    23 12
    -4 3
    

    输出样例:

    111
    1B
    -11
    

     

    代码如下:

    #include <iostream>
    #include <memory.h>
    using namespace std;

    bool flag = false;                   // flag用于负数的处理
    char arr[40];
    char temp[100];
    void DeciToOther(int n,int m)
    {
        int k=0;
        if(n<0){
            flag = true;
            n = -n;
        }
        while(n){
            temp[k] = arr[n%m];
            n/=m;
            k++;
        }
        if(flag)
            cout << '-';
        for(int i=k-1; i>=0; i--)
            cout << temp[i];
        cout << endl;
    }

    int main()
    {
        int n,m;
        for(int i=0; i<10; i++)
            arr[i] = i+'0';
        for(int i=10; i<=35; i++)
            arr[i] = i+'A'-10;
        while(scanf("%d%d",&n,&m)!=EOF){
            memset(temp,0,sizeof(temp));
            DeciToOther(n,m);
        }
        return 0;

    展开全文
  • 十进制转任意进制

    2017-07-20 23:09:32
    十进制转任意进制采用取余倒排法

    十进制转任意进制采用取余倒排法

    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <stdlib.h>
    #include <stdio.h>
    
    using namespace std;
    
    //转换函数
    //输入:要转换的数, 转换后的进制
    string translate(int num, unsigned int base)
    {
        if(base == 0)
        {
            cout << "进制不能为0" << endl;
        }
    
        string ret;
    
        while(num)
        {
            ret.push_back('0' + num % base);
            num /= base;
        }
        //STL泛型算法,反转
        reverse(ret.begin(), ret.end());
        return ret;
    }
    
    int main(int argc, char** argv)
    {
        if(argc != 3)
        {
            cout << "usage: ./a.out <num> <base>" << endl;
        }
    
        int num, base;
        sscanf(argv[1], "%d", &num);
        sscanf(argv[2], "%d", &base);
        string str = translate(num, base);
        cout << str << endl;
        return 0;
    }
    展开全文
  • //释放栈顶元素 } } void Decimal(LinkStack S)//十进制转换任意进制函数 { int n,//输入的十进制数 m,//输入的要的进制 i=0;//记录次数变量 printf("请输入一个十进制数: "); scanf("%d",&n); while(1...
  • 1、任意进制转十进制 long int strtol(const char *nptr,char **endptr,int base); strtol函数会将参数nptr字符串根据参数base来转换成长整型数,参数base范围从2至36 使用: char* s=“1011”; cout<<...
  • C语言使用栈实现十进制转任意进制

    千次阅读 2020-05-17 17:10:30
    } printf("十进制数 %d转化为%d进制数为:",y,m); while(top >=0){ if(peek(stack,top) ){ printf("%d",peek(stack,top)); }else{ printf("%c",peek(stack,top)-10+'A'); } top = pop(stack,top)...
  • 给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数。(M(32位整数)、N(2 ≤ N ≤ 16))。 例: 输入: 7 2 输出:111 解题思路(参考他人题解): 首先判断M正负;定义一flag,若M为负数,则将其...
  • 进制转任意进制 分析:十进制数 X 转 M 进制,方法是:从 X 开始循环除以 M ,记下余数,整数商作为新的 X 继续除以 M ,直到 X=0 为止。然后倒序取余数即可。 (10 进制转 2 进制) (10 进制转 16 进制)...
  • C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
  • C++十进制转换任意进制

    千次阅读 2018-11-28 09:34:11
    如上是将十进制转换1-16进制,并且有可能会输入负数 首先我们先考虑当输入的要转换的数为0,那么不管是任何进制,转换都是0. 然后考虑进制是否小于10,因为大于等于10之后的进制需要使用字符’A’-‘F’. 考虑进制...
  • 将非负十进制整数n转换成b进制。(其中b=2~16) 算法分析 记住这个方法:对于进制转换类问题,就是不断的余b模b。(b代表进制数的基数) 具体步骤:重复执行①和步骤②,直到n为0结束。 ①取b进制数的个位:求余...
  • 十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制 的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。 输入格式  输入包含一个...
  • 然后前两天我们的老师刚好讲到进制转换的内容,我就写了一下这个小项目,希望对你们有用,如果有错误的话,欢迎评论区留言。算法代码public class Main {public static void main(String[] args) {// ...
  • python-十进制转任意进制

    千次阅读 2019-07-17 15:58:20
    def func(num, conversion_num): ... :param num:要被转换的十进制整数 :param conversion_num:要转换的进制,整数 :return: 转换后的结果 ''' a = "0123456789abcdefghijklmnopqrstuvwxyz" res = '' if num...
  • 首先十进制转换为任意进制我们需要考虑如下几种情况 1.转换为正数10十进制之内的进制 2.转换为正数10进制之外的进制 3.转换为负数进制 第一步普通的转换进制 通过简单地模拟就可以做到,无非是取余操作,然后把对应...
  • 十进制的转换与任意进制的互

    千次阅读 2020-01-08 20:50:07
    进制转任意进制时,将这个十进制数除以进制数,比如2(也就是十进制转二进制),得到商和一个从0~1的余数,然后再以这个商为被除数,除了进制数2,继续得到商和一个从0~1的余数。以此方式不断相除,直到得到的...
  • python 十进制转换成任意进制

    千次阅读 2020-11-21 01:51:19
    原博文2015-04-08 08:36 −记得大学时代,参加学校举行的编程大赛,其中有道题是: 编写一函数,实现十进制转换成十六进制。 看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当...
  • def num_ten_to_arbitrarily(num, base): result = [] if num == 0: result.append(0) else: while num != 0: remainder = num % base # 余数 num = num // ba...
  • 保准无误,每个进制输入的数都会判断一次,如果这个数大于了X进制(如2进制写成1022),就会提示你肯定有误
  • C++语言,分别用栈和递归来实现十进制转换为任一进制。
  • * 主题 :对于输入的任意一个非负十进制小数,打印输出与其等值的任意进制小数 * Date : 2018/10/14 */ #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt...
  • 1] def size(self): return len(self.items) 进制转换: from stack import Stack def divideBy2(decNumber, base): remstack = Stack() digits = "0123456789ABCDEF" while decNumber > 0: rem = decNumber % base ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 154,500
精华内容 61,800
关键字:

十进制转任意进制