美文网首页python
任意进制转换

任意进制转换

作者: Python_Camp | 来源:发表于2020-11-14 11:26 被阅读0次

​- 课程大类AGENDA -01 Scratch 初中高01 女性编程日周二02 Python 编程思维02 数字设计3D实践03 VEX IQ 理论和实战03 创客体验 免费预约04 ACM/NOI 算法04 物联网基础实践**▽ ****课程体系和进度****▽ **

丁丁猫python起跑班课程内容覆盖7个大模块,每个模块文末详细技能知识点。3个班的进度相同但讲的深度不同。课程设计中将感受到对逻辑课的高度重视,弥补国内K12编程和数学课程缺少的重要一环。

本文是课程内容的深入补充同时为了便于查看历史文章,单独汇总字典部分的用法。有部分同学进度赶不上,可以考虑跟下一轮基础班重修。

**- **编程实践和机器人课程中穿插必备的数学和物理

**- **全球顶级的STEM在线课程提供线下辅导

- 既能视频一对一学习,也有线下授课

▽ 关键技能点▽

  • 取余和取整

  • 递归的退出

  • 进制转换要义

% 递归 //学编程和学吃牛排

“老师教我刀叉怎么切牛肉,你以为好玩又好吃?”

“当然这么认为,不然我替你去学!”

“一上午对着一盘子,切了半天的空气”

“脑补了你对着空盘子认真到无聊的样子”

早已熟悉的进制操作,譬如:

十进制 to 八进制: oct()# 十进制 to 十六进制: hex()例如:100的16进制是64f 遇到新问题,16进制的64转换为17进制怎么办?没有现成的函数可用还好,通过任意进制转换需要通过10进制过渡可以实现。首先,16进制转换为10进制后为100 其次,100的17进制是5f结论:16进制的64转换为17进制是5f

两种写法:

第一种递归:简洁易懂

10进制 -> X进制转换过程。N是一个10进制的数,我们先N除以X的余数,即为不足X的部分为X进制的个位;接下来重复以上操作即可,依次得到高位的余数:

一直执行N//X, N%X,直到N//X==0为止!


import string
def convert(n,x,ans):   
#n为待转换的十进制数,x为进制,取值为2-32

    basefull = string.digits + string.ascii_lowercase
    if (n>=0) and (n<x):
        ans = basefull[n]+ans
        return ans
    else:
        ans = basefull[n % x] + ans
        return convert(n//x,x,ans)

第二种 while循环

import string

def count_digit(number, digit, base=10, from_base=10):

    digs = string.digits + string.ascii_lowercase

    num = int(number, from_base)

    out = ''

    while num:

        out = digs[num % base] + out

        num = num // base

    if not out:

        out = '0'

    return out.count(digit)

</pre>

第三种 import numpy

from numpy import base_repr

def count_digit(number, digit, base=10, from_base=10):

    return base_repr(int(number, from_base), base).lower()

1. Collections: List, Dictionary, Set, Tuple, Range, Enumerate, Iterator, Generator.
2. Types: Type, String, Regular_Exp, Format, Numbers, Combinatorics, Datetime
3. Syntax: Args, Inline, Closure, Decorator, Class, Duck_Types, Enum, Exceptions
4. System: Print, Input, Command_Line_Arguments, Open, Path, Command_Execution.
5. Data: CSV, JSON, Pickle, SQLite, Bytes, Struct, Array, MemoryView, D

相关文章

  • python 进制转换

    如何表示二进制 任意进制之间的转换 任意进制转换成二进制--bin 任意进制转换成十进制--int 3.任意进制转...

  • java 基础(一)

    1、进制图解 2、进制表示 3、任意进制到十进制转换 4、十进制到任意进制 5、8421快速转换法 6、原码、反码...

  • 任意进制转换

    输入数字n和相应的进制,输出n对应的k进制数

  • 任意进制转换

    ​- 课程大类AGENDA -01 Scratch 初中高01 女性编程日周二02 Python 编程思维02 数...

  • 任意进制大数转换

    问题描述:将用字符串表示的M进制大数,转化为用字符串表示的N进制大数。1

  • 数字逻辑之数制转换

    一.数制转换 1.按权展开式求任意进制 2.任意进制转十位数 2.1 二进制转十进制 逐位加...

  • 任意进制之间的转换

    任意进制之间的转换可以用除k取余法比如想把M进制转换成K进制,可以用输入数据连续去除K,直到商为零为止,然后把每次...

  • c#任意进制转换

    开发人员通常需要将十进制数转换为二进制、八进制、十六进制或其他进制。由于这是一个常见的任务,在互联网上有很多例子是...

  • 进制转换——2. 数制转换

    北京大学复试数制转换问题 题目描述 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表...

  • 进制转换

    1.将任意进制字符串转换为十进制 2.将十进制转化为其他进制字符串 利用Object.toString(n) 参数...

网友评论

    本文标题:任意进制转换

    本文链接:https://www.haomeiwen.com/subject/ainibktx.html