进制和编码

1. Python代码的运行方式

1.1 Python解释器

Python代码是通过Python解释器执行的。解释器将代码逐行读取并转换为计算机可以理解的字节码。执行过程一般包括以下步骤:

  • 代码编写:开发者将Python代码写入.py​文件。
  • 代码加载:运行Python时,解释器加载指定的脚本文件。
  • 词法分析:解释器对代码进行词法分析,将代码转换为语法树(AST)。
  • 编译为字节码:将解析后的语法树编译为字节码,这是Python虚拟机能够理解的中间格式。
  • 解释执行:字节码被Python虚拟机解释并执行,实际完成指定的功能。
1.2 运行环境

Python可以在不同的环境中运行,主要包括:

  • 命令行/终端:直接在命令行中使用python script.py​来执行脚本。
  • 集成开发环境(IDE):使用专门的IDE(如PyCharm、VSCode、Jupyter Notebook等)编写和执行代码。
  • 在线编译器:使用如Replit、Google Colab等在线工具。
1.3 交互式模式

Python还提供交互式模式,在命令行中输入python​可以进入REPL(Read-Eval-Print Loop)环境,实时输入和执行代码。

2. 进制转换

进制转换是将一个数从一种计数法表示法转换到另一种计数法的过程。常见的进制有:

  • 二进制(Base-2):仅使用0和1。
  • 十进制(Base-10):人类常用的计数法,使用0到9。
  • 八进制(Base-8):使用0到7。
  • 十六进制(Base-16):使用0到9和A到F。
2.1 转换方法
  • 从二进制到十进制:每个二进制位乘以2的对应位权。
  • 从十进制到二进制:不断除以2并记录余数,最后逆序输出。
  • 从十进制到十六进制:类似于二进制,不断除以16。
2.2 转换函数
  • 从十进制到二进制:

    • v1 = bin(25) # 十进制转换为二进制
      print(v1) # "0b11001"
      
  • 从十进制到八进制:

    • v2 = oct(23) # 十进制转换为八进制
      print(v2) # "0o27"
      
  • 从十进制到十六进制:

    • v3 = hex(28) # 十进制转换为十六进制
      print(v3) # "0x1c"
      

3. 计算机中的单位

计算机中用于表示数据的基本单位是位(bit)。数据传输和存储的常用单位包括:

  • 字节(Byte):8位,相当于一个字符(通常是ASCII)。
  • 千字节(KB):1024字节。
  • 兆字节(MB):1024 KB。
  • 千兆字节(GB):1024 MB。
  • 太字节(TB):1024 GB。

计算机存储单位的使用,使得我们可以准确地表示和计算数据的容量和传输速度。

4. 编码

编码是将字符、数字及其他符号转换为计算机可以处理的二进制格式的过程。常见编码方式包括:

4.1 ASCII编码
  • 定义:ASCII(美国标准信息交换码)是一种字符编码方案,使用7位二进制表示128个字符(0-127)。
  • 特点:包含英文字母、数字和一些特定控制字符,适用于英语字符的表示。
  • 扩展:扩展ASCII使用8位以支持额外的字符。
4.2 GBK编码
  • 定义:GBK是对汉字的编码方案,是GB2312的扩展,支持简体和繁体中文。
  • 特点:采用双字节表示字符,可以编码多达21000个汉字和符号,适用于中文环境。
4.3 Unicode编码
  • 定义:Unicode是一个全球字符编码标准,提供为所有语言的字符分配唯一的编码,实现多语言字符集的统一。
  • 特点:支持超过143,000个字符,涵盖大部分现代语言和古代文字。
  • 编码格式:Unicode有多种实现形式,包括UTF-8、UTF-16和UTF-32。
4.4 UTF-8编码
  • 定义:UTF-8是一种可变长度的Unicode编码方式,使用1到4个字节表示字符。
  • 特点:兼容ASCII编码,英文字符使用1个字节,中文字符通常使用3个字节,使其在网络传输时节省带宽。
  • 应用:UTF-8广泛应用于网页(HTML)和现代编程语言中,成为互联网的标准编码。
4.5 Python相关的编码函数

在Python中,我们可以通过一些内置函数和库来处理编码和解码操作:

  • ​str.encode(encoding)​:将字符串编码为字节。例如:

    text = "你好"
    byte_text = text.encode('utf-8')  # 将字符串转换为UTF-8编码的字节
    
  • ​bytes.decode(encoding)​:将字节解码为字符串。例如:

    byte_text = b'\xe4\xbd\xa0\xe5\xa5\xbd'  # UTF-8编码的字节
    text = byte_text.decode('utf-8')  # 将字节解码为字符串
    
  • ​codecs​模块:Python的codecs​库提供了对不同编码格式的支持,可以读取和写入特定编码的文件。例如:

    import codecs
    with codecs.open('file.txt', 'r', encoding='gbk') as f:
        content = f.read()
    
  • ​chardet​库:可用来检测字节流的编码格式,适用于处理来自文件或网络的内容:

    import chardet
    byte_data = b'\xe4\xbd\xa0\xe5\xa5\xbd'
    result = chardet.detect(byte_data)
    print(result)  # 输出可能的编码信息
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2002-2019年各省人口老龄化程度数据

2002-2019年各省人口老龄化程度数据 1、时间:2002-2019年 2、来源:国家统计局、统计年鉴 3、指标:地区、年度、六十五岁以上占比 4、范围:31省 5、指标解释:人口老龄化是指人口生育率降低和人均寿命延长导致的总人…

面向机器学习的Java库与平台简介、适用场景、官方网站、社区网址

Java机器学习的库与平台 最近听到有的人说要做机器学习就一定要学Python,我想他们掌握的知道还不够系统全面。本文作者给大家介绍几种常用Java实现的机器学习库,快快收藏加关注吧~ Java机器学习库表格 Java机器学习库整理库/平台概念适合场…

MySQL 之服务器配置和状态(MySQL Server Configuration and Status)

MySQL 之服务器配置和状态 1 MySQL 架构和性能优化 1.3 服务器配置和状态 设置 MySQL 服务的特性,可以通过 mysqld 服务选项,服务器系统变量和服务器状态变量这三个方面来进行设置和查看。 官方文档 https://dev.mysql.com/doc/refman/8.0/en/serve…

Linux的基础指令和环境部署,项目部署实战(下)

目录 上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客 1. 搭建Java部署环境 1.1 apt apt常用命令 列出所有的软件包 更新软件包数据库 安装软件包 移除软件包 1.2 JDK 1.2.1. 更新 1.2.2. 安装openjdk&am…

LabVIEW无刷电机控制器检测系统

开发了一种基于LabVIEW的无刷电机控制器检测系统。由于无刷电机具有高效率、低能耗等优点,在电动领域有取代传统电机的趋势,而无刷电机的核心部件无刷电机控制器产量也在不断增长。然而,无刷电机控制器的出厂检测仍处于半自动化状态&#xff…

《仙台有树》里的馅料(序)

《仙台有树》一起追剧吧(二):馅料合集概览 ●德爱武美玩,全面发展 ●猜猜我是谁&真假美清歌 ●失忆的风还是吹到了仙台 ●霸道师徒强制收&你拜我,我拜你,师徒徒师甜蜜蜜 ●霸道总裁强制爱 ●仙台有…

网站搭建基本流程

需求分析: 实现网站搭建的过程:首先进行网站的需求性分析 网站可分为前台系统和后台系统,由不同的功能拆分为不同的模块 如下是一个电商网站可以拆分出的模块: 在编写代码前,我们要先对网站进行架构,通过…

反射机制的简单示例

一个使用反射机制的简单示例&#xff0c;这个示例将展示如何使用反射来实现一个通用的数据导出功能。 首先&#xff0c;让我们创建必要的项目结构和文件&#xff1a; 首先修改 pom.xml 添加依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?&…

Qt:多元素控件

目录 多元素控件介绍 QListWidget QTableWidget QTreeWidget 多元素控件介绍 多元素控件表示这个控件中包含了很多的元素&#xff0c;元素可能指的是字符串&#xff0c;也可以指的是更加复杂的数据结构、图片等等 Qt 中提供的多元素控件有: QListWidgetQListViewQTableW…

DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

STL —— 洛谷字符串(string库)入门题(蓝桥杯题目训练)(一)

目录 一、B2109 统计数字字符个数 - 洛谷 算法代码&#xff1a; 1. 引入库和命名空间 2. 主函数 3. 读取输入 4. 变量初始化 5. 遍历字符串 6. 输出结果 7. 返回值 总结 评测记录&#xff1a; 二、B2110 找第一个只出现一次的字符 - 洛谷 方法一&#xff1a;算法代…

Golang GORM系列:GORM并发与连接池

GORM 是一个流行的 Go 语言 ORM&#xff08;对象关系映射&#xff09;库&#xff0c;用于简化数据库操作。它支持连接池和并发访问功能&#xff0c;这些功能对于高性能、高并发的应用场景非常重要。本文结合示例详细介绍gorm的并发处理能力&#xff0c;以及如何是哟个连接池提升…

C#之上位机开发---------C#通信库及WPF的简单实践

〇、上位机&#xff0c;分层架构 界面层 要实现的功能&#xff1a; 展示数据 获取数据 发送数据 数据层 要实现的功能&#xff1a; 转换数据 打包数据 存取数据 通信层 要实现的功能&#xff1a; 打开连接 关闭连接 读取数据 写入数据 实体类 作用&#xff1a; 封装数据…

Ubuntu24安装MongoDB(解压版)

目录 0.需求说明1.环境检查2.下载软件2.1.下载MongoDB服务端2.2.下载MongoDB连接工具(可略过)2.3.检查上传或下载的安装包 3.安装MongoDB3.1.编辑系统服务3.2.启动服务3.3.客户端连接验证3.3.1.创建管理员用户 4.远程访问4.1.开启远程访问4.2.开放防火墙 0.需求说明 问&#x…

《DeepSeek-V3:人工智能大语言模型》

《DeepSeek-V3:人工智能大语言模型》 1. 引言 我们介绍了 DeepSeek-V3,这是一个强大的专家混合 (MoE) 语言模型,总共有 671B 个参数,每个令牌激活了 37B。 为了实现高效的推理和具有成本效益的训练,DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 DeepSeekMoE 架构,这些…

解锁机器学习核心算法 | K -近邻算法:机器学习的神奇钥匙

一、引言 今天我们继续学习机器学习核心算法 —— K - 近邻&#xff08;K-Nearest Neighbors&#xff0c;简称 KNN&#xff09;算法。它就像是一位经验丰富的 “老江湖”&#xff0c;以其简单而又强大的方式&#xff0c;在众多机器学习任务中占据着不可或缺的地位。 K - 近邻…

算法分析—— 《归并排序》

《排序数组》 题目描述&#xff1a; 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 你必须在 不使用任何内置函数 的情况下解决问题&#xff0c;时间复杂度为 O(nlog(n))&#xff0c;并且空间复杂度尽可能小。 示例 1&#xff1a; 输入&#xff1a;nums [5,2…

linux云服务器部署deepseek,并通过网页访问

参考视频&#xff1a;https://www.douyin.com/root/search/linux%E5%AE%89%E8%A3%85%20deepseek?aid3aa2527c-e4f2-4059-b724-ab81a140fa8b&modal_id7468518885570940214&typegeneral 修改ollama配置文件 vim /etc/systemd/system/ollama.service 我的电脑硬盘只有4…

FastAdmin后端列表导入表格数据

后台添加数据的时候增加通过表格导入功能 如下图index.html页面增加导入和模板下载按钮代码如下 <div class"panel panel-default panel-intro">{:build_heading()}<div class"panel-body"><div id"myTabContent" class"ta…

可调节图片参数,解决图片模糊及尺寸过小问题的工具

软件介绍 你是否正为图片模糊、尺寸太小而烦恼&#xff1f;别担心&#xff0c;有这样一款神器能帮你轻松解决。它能精准调节图片参数&#xff0c;即便原本模糊不清的图片&#xff0c;经它处理后也能变得高清锐利&#xff0c;瞬间让图片焕然一新。而且&#xff0c;它还具备导出…