【笔记】进制转换

文章目录

    • 一、任意进制转十进制
      • 1、整数转化成十进制
        • (1)二进制转十进制
        • (2)八进制转十进制
      • 2、小数转化成十进制
        • (1)二进制转十进制
        • (2)八进制转十进制
      • 3、代码
      • 1、整数转化成十进制
      • 2、小数转化成十进制
    • 二、十进制转任意进制
      • 1、十进制整数转化成其他进制
      • 2、十进制小数转化成其他进制
    • 例题

一、任意进制转十进制

基数:表示基本数字符号的个数。
比如十进制就是0-9,基数有10个;十六进制就是0-9、A-F,基数有16个。

权:每一位表示的数值。
比如十进制的8769里8代表8* 1000,7代表7* 100,6代表6* 10,9代表9* 1。这里的千位数代表1000,百位数代表100,十位数代表10,个位数代表1。

权=基数^x,x表示位数(从右往左数,从0开始)

还是以十进制为例子,千位数的权=基数10^3=1000

十进制数=各位数字*权的和

按权展开法: 十进制数 = ∑ i 第 i 位数字 ∗ 第 i 位数字的权 = ∑ i 第 i 位数字 ∗ 基 数 i 十进制数=∑_i第i位数字*第i位数字的权=∑_i第i位数字*基数^i 十进制数=ii位数字i位数字的权=ii位数字i

1、整数转化成十进制

(1)二进制转十进制

1010 1 2 = 1 × 2 4 + 0 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 = 16 + 0 + 4 + 0 + 1 = 21 10101_2=1\times2^4+0\times2^3+1\times2^2+0\times2^1+1\times2^0=16+0+4+0+1=21 101012=1×24+0×23+1×22+0×21+1×20=16+0+4+0+1=21

(2)八进制转十进制

257 3 8 = 2 × 8 3 + 5 × 8 2 + 7 × 8 1 + 3 × 8 0 = 1403 2573_8=2\times8^3+5\times8^2+7\times8^1+3\times8^0=1403 25738=2×83+5×82+7×81+3×80=1403

2、小数转化成十进制

(1)二进制转十进制

1101.100 1 2 = 1 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 + 1 × 2 − 1 + 0 × 2 − 2 + 0 × 2 − 3 + 1 × 2 − 4 = 8 + 4 + 0 + 1 + 1 / 2 + 0 + 0 + 1 / 16 = 13.5625 1101.1001_2=1\times2^3+1\times2^2+0\times2^1+1\times2^0+1\times2^{-1}+0\times2^{-2}+0\times2^{-3}+1\times2^{-4}=8+4+0+1+1/2+0+0+1/16=13.5625 1101.10012=1×23+1×22+0×21+1×20+1×21+0×22+0×23+1×24=8+4+0+1+1/2+0+0+1/16=13.5625

(2)八进制转十进制

573.1 2 8 = 5 × 8 2 + 7 × 8 1 + 3 × 8 0 + 1 × 8 − 1 + 2 × 8 − 2 = 320 + 56 + 3 + 1 / 8 + 1 / 32 = 379.15625 573.12_8=5\times8^2+7\times8^1+3\times8^0+1\times8^{-1}+2\times8^{-2}=320+56+3+1/8+1/32=379.15625 573.128=5×82+7×81+3×80+1×81+2×82=320+56+3+1/8+1/32=379.15625

3、代码

1、整数转化成十进制

写法1

def k_to_ten(k,x):ans=0for i in list(x):ans=ans*k+int(i)return ans
print(k_to_ten(8,"2573"))
# 1403
print(k_to_ten(2,"10101"))
# 21

写法2

int_to_char="0123456789ABCDEF"
char_to_int={}
for i in range(16):char_to_int[int_to_char[i]]=idef k_to_ten(k,x):ans=0for i in x:ii=char_to_int[i]ans=ans*k+iireturn ans
print(k_to_ten(8,"2573"))

写法3

int_to_char="0123456789ABCDEF"
char_to_int={}
for i in range(16):char_to_int[int_to_char[i]]=idef k_to_ten(k,x):ans=0length=len(x)for index,char in enumerate(list(x)):ii=char_to_int[char]ans+=ii*k**(length-index-1)return ans
print(k_to_ten(2,"10101"))

2、小数转化成十进制

int_to_char="0123456789ABCDEF"
char_to_int={}
for i in range(16):char_to_int[int_to_char[i]]=i
def k_to_ten(k,x):# 把x分成正数和小数x=x.split('.')ans=0for index,char in enumerate(list(x[0])):length=len(x[0])ii=char_to_int[char]ans+=ii*k**(length-index-1)for index,char in enumerate(list(x[1])):ii=char_to_int[char]ans+=ii*k**(-(index+1))return ans
print(k_to_ten(8,"573.12"))
# 379.15625

二、十进制转任意进制

除k取余法:十进制数字不断除以k求余数,然后逆序输出。

之前已经知道了 十进制数 = ∑ i 第 i 位数字 ∗ 第 i 位数字的权 = ∑ i 第 i 位数字 ∗ 基 数 i 十进制数=∑_i第i位数字*第i位数字的权=∑_i第i位数字*基数^i 十进制数=ii位数字i位数字的权=ii位数字i,那么除以基数k就可以以低位到高位的顺序得到基数。

以把十进制的99转化成二进制为例子:
99/2=49……1
49/2=24……1
24/2=12……0
12/2=6……0
6/2=3……0
3/2=1……1
1/2=0……1
所以 9 9 10 = 0110001 1 2 所以99_{10}=0110 0011_2 所以9910=011000112

1、十进制整数转化成其他进制

还是以是十进制数99为例:

9 9 10 = 0110001 1 2 99_{10}=0110 0011_2 9910=011000112

99/2=49……1
49/2=24……1
24/2=12……0
12/2=6……0
6/2=3……0
3/2=1……1
1/2=0……1
99=1*2**6+1*2**5+0*2**4+0*2**3+0*2**2+1*2**1+1*2**0

9 9 10 = 14 3 8 99_{10}=143_8 9910=1438

99/8=12……3
12/8=1……4
1/8=0……1
99=1*8**2+4*8**1+3*8**0

9 9 10 = 6 3 16 99_{10}=63_{16} 9910=6316

99/16=6……3
6/16……6
99=6*16**1+6*16**0

2、十进制小数转化成其他进制

除k取整法:十进制小数转k进制,乘以k求整数,然后顺序输出。

0.62 5 10 = 0.10 1 2 0.625_{10}=0.101_2 0.62510=0.1012

在这里插入图片描述

例题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424283.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python笔记(上)

安装 全局安装 pip install opencv-python项目虚拟环境安装 # 进入项目根路径执行 .venv/bin/pip install opencv-python计算机眼中的图像 一张图片由大小比如(100*100)决定,说明存在100*100的像素点,每个像素点存在颜色通道&…

Neo4j入门案例:西游记

创建一个基于《西游记》中“孙悟空”的黑神话版本的知识图谱。这个图谱将会包括《西游记》中的一些主要角色、地点、事件以及它们之间的关系。我们将创建至少10个节点和20个关系,并提供相应的Cypher语句。 数据模型定义 实体类型(节点) 角色…

Nuxt Kit 组件管理:注册与自动导入

title: Nuxt Kit 组件管理:注册与自动导入 date: 2024/9/15 updated: 2024/9/15 author: cmdragon excerpt: Nuxt Kit 为组件的注册和导入提供了灵活高效的解决方案。无论你是要批量导入组件,还是单独处理特定组件,这些工具都能够满足你的需求。使用这些方法可以显著提升…

路径规划——D*算法

路径规划——D*算法 D Star算法是一种用于动态环境下的算法,它可以在环境变化时快速更新路径。 算法原理 D Star算法是一种反向增量式搜索算法,反向即算法从目标点开始向起点逐步搜索;增量式搜索,即算法在搜索过程中会计算每一…

Navicat On-Prem Server 2.0 | MySQL与MariaDB基础管理功能正式上云

近日,Navicat 发布了 Navicat On-Prem Server 2.0 的重大版本更新。这标志着这款自2021年首发的私有云团队协作解决方案迈入了一个崭新的阶段。此次2.0版本的飞跃性升级,核心聚焦于MySQL与MariaDB基础管理功能的全面革新与强化,赋予了用户的操…

leaflet【十】实时增加轨迹点轨迹回放效果实现

实时轨迹回放 在前面有用leaflet-trackplayer实现了一个轨迹回放的效果,单击前往:轨迹回放效果&控制台控制轨迹运动效果 这篇文章主要是实现一下实时增加轨迹点,不改变原来运行轨迹和速度。这里是简易做了一个demo效果,大概…

计算机网络 --- 【1】欢迎来到计算机网络/计算机网络基本概念/计算机网络、互连网、互联网的区别

目录 一、计算机网络学什么? 二、 什么是计算机网络?计算机网络、互联网(因特网,Internet)、互连网(internet)之间的区别? 2.1 计算机网络的定义 2.2 计算机网络与互连网的区别 2.3 互连网 三、总结部分 一、计算机网络学…

Nginx+Tomcat(负载均衡、动静分离)

目录 一、Nginx概述 1.Nginx应用 二、正向代理和反向代理 1.正向代理 1.1主要作用 1.2工作原理 2.反向代理 2.1主要作用 2.2工作原理 三、负载均衡模式 1.轮询 2.最少连接数 3.IP 哈希 4.加权轮询 5.最少时间算法 6.一致性哈希 四、规划部署负载均衡和反向…

oracle数据库安装和配置详细讲解

​ 大家好,我是程序员小羊! 前言: Oracle 数据库是全球广泛使用的关系型数据库管理系统 (RDBMS),提供高性能、可靠性、安全性和可扩展性,广泛应用于企业关键任务系统。下面详细介绍如何在 CentOS 系统上安装和配置 Or…

【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树

在安卓源码的设计中,将将屏幕分为了37层,不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析,整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

智能家居环境监测系统设计(论文+源码)

1. 系统方案 系统由9个部分构成,分别是电源模块、烟雾传感器模块、GSM发送短信模块、报警模块、温度传感器模块、人体红外感应模块、按键设置模块、显示模块、MCU模块。各模块的作用如下:电源模块为系统提供电力;烟雾传感器模块检测烟雾浓度&…

[项目实战]EOS多节点部署

文章总览:YuanDaiMa2048博客文章总览 EOS多节点部署 (一)环境设计(二)节点配置(三)区块信息同步(四)启动节点并验证同步EOS单节点的环境如何配置 (一&#xf…

开放系统,面向各类业务需求可提供定制化服务的智慧物流开源了

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的…

计算机毕业设计 智慧物业服务系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Python数据分析 Pandas库-初步认识

Python数据分析 Pandas库-初步认识 认识Pandas ​ pandas是一个非常实用的Python工具,我们可以把它想象成一个超级强大的表格处理工具,它比Excel更智能,操作更为简单。pands可以从各种文件格式(CSV、JSON、SQL、Excel&#xff0…

ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯

IGT-DSER智能网关模块支持西门子、三菱、欧姆龙、罗克韦尔AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人、智能仪表、变频器等设备通讯。网关有多个网口、串口,也可选择WIFI无线通讯。无需PLC内编程开发,只要在IGT-DSER智…

AI大模型与产品经理:替代与合作的深度剖析

在创业的征途中,产品经理常常被外界以一种半开玩笑的口吻提及:“就差一个程序员了。”这句话背后,既蕴含着对产品经理创意与策略能力的认可,也揭示了技术实现环节对于产品成功不可或缺的重要性。然而,随着AI技术的飞速…

2024年微电子与纳米技术国际研讨会(ICMN 2024) Microelectronics and Nanotechnology

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus大会时间:2024年9月20-22日地点:成都…

Golang数据流处理:掌握Reader和Writer接口的技巧

Golang数据流处理:掌握Reader和Writer接口的技巧 引言理解Reader和Writer接口Reader接口的定义和基本方法Writer接口的定义和基本方法 Reader接口的深入探讨Reader接口的实现示例使用io.Reader读取文件内容从网络连接中读取数据 常用Reader类型及其应用场景strings.…

Selenium打开浏览器后闪退问题解决

笔者这两天在做一个自动化方案,用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问,而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常(表现在有些复制粘贴按钮显示不太灵敏)。 但在Edge浏览器上基本正常&#…