进制和编码

2023-11-07

目标:了解计算机中一些必备的尝试知识,了解常见名词背后的意义

1.python的运行方式

  • 交互式运行
  • 脚本式运行

2.进制

2.1 进制的转换

计算机中底层的所有数据都是0101010101的形式存在的

八进制无法直接转为2进制

  • 十进制转其他进制
bin(25) # 10进制转为2进制
oct(25) # 10进制转为8进制
hex(25) # 10 进制转为16 进制

输出的结果都是字符串类型的结果

  • 其他进制转为十进制
int('0b11001', base=2) 2进制转为10进制
int('0o31', base=8) 8进制转为10进制
int('0x19', base=16) 16进制转为10进制

由于计算机中本质上所有的东西都是二进制进行存储和操作的,所以产生了计算机的单位。

  • b(bit),位
1,1位
10,2位
111,3位
1001,4位
  • B(byte),字节
8位数是一个字节
10001000,1个字节
10001000 10001000 2个字节
  • KB(kilobyte),千字节
1024个字节=1千字节
1kb=1024B=1024*8b
  • M(Megabyte)兆
1024KB = 1M = 1024*1024 B 1024*1024*8 b

G(Gigbyte),千兆

1G = 1024 M =1024*1024KB = 1024*1024*1024 B = 1024*1024*1024*8 b
  • T (Terabyte),万亿字节
1T = 1024G

4.编码

编码,文字和二进制之间的一个对照表

4.1 ASCII编码

ASCII规划使用一个字节表示字母与二进制对应关系
请添加图片描述

4.2 GB-2312编码

gb-2312编码,由国家信息标准委员会制作(1980年)

gbk 编码,对gb2312进行扩展,包含了中日韩等文字(1995年)。

在与二进制做对应关系时,由如下逻辑:

  • 单字节表示,用一个字节表示对应关系。2**8 =256
  • 双字节表示,用两个字节表示对应关系。2**16 =65536种可能性

4.4 Unicode

Unicode 也被称为万国码,为全球的每个文字都分配了一个码位

  • Ucs2
用固定的2个字节表示一个文字
  • Ucs4
用固定的4个字节表示一个文字

无论是ucs2和ucs4都有一个问题就是浪费空间

文字	  十六进制	二进制 
冯  		51AF 	101000110101111 
冯		51AF	01010001 10101111 					ucs2 	
冯		51AF	00000000 00000000 01010001 10101111 ucs4

unicode的应用:在文件存储和网络传输时,不会直接使用Unicode,而在内存中会使用Unicode的

4.4 utf-8编码

包含所有的文字和二进制的对应关系,全球应用范围最为广泛的一种编码形式(站在巨人肩膀上工程名就)

本质上:utf-8是对Unicode编码的压缩,用尽量少的二进制与文字进行对应

Unicode码范围		UTF-8
0000 - 007F			用一个字节表示
0080 - 07FF 		用两个字节表示
0800 - FFFF 		用三个字节表示
10000 - 10FFFF 		用四个字节表示

压缩流程

  • 第一步:选择转换模版
码位范围(16进制)		转换模版
0000 - 007F				0xxxxxxx
0080 - 07FF 			110xxxxx 10xxxxxx
0800 - FFFF 			1110xxxx 10xxxxxxx 10xxxxxx
10000 - 10FFFF			11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

注意:一般中文都使用第三个模版(三个字节),这也就是大家说中文在UTF-8中会占三个字节的原因了

  • 第二步:在模版中填入数据
冯 -》51AF-》101 000110 101111 
根据模版去套入数据
1110xxxx 10xxxxxxx 10101111 
1110xxxx 10000110 10101111 
11100101 10000110 10101111 
在utf-8 编码中"武"的编码为  11100101 10000110 10101111 

4.5 Python中的编码

字符串(srt)    "yujinlong"    unicode 	一般用于内存
字节(byte)					utf-8 or gbk  一般用于文件和网络 
text = 'yuijnlong2002'
data = text.encode('utf-8')
# 打开一个文件
file = open('yujinlong.txt', mode='wb')
# 写入字符串
file.write(data)
# 关闭文件 
file.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进制和编码 的相关文章

  • 【计算机毕业设计】毕业生就业管理微信小程序_lm9q0

    腾讯公司在2017年1月19日发布了一款不需要下载 不需要卸载 不需要存储的软件叫微信小程序 受到了很多人的喜欢 微信小程序自2017年发布至今 依托微信的社交属性和庞大的用户基数 已经渗透到生活的方方面面 1 微信小程序可以将基于微信平台
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 2024诸多大厂春招提前启动!Android的程序员还在等什么

    春招 提前批 已开 xdm别打瞌睡了 格力 顺丰 酷狗 沃尔玛中国 理想 科大讯飞等开启春招 开始收简历了 还有hc的企业提前抢人 春招时间短 节奏快 招满即止 就算挂了也绝不能不投 对企业来说 秋招和春招都是储备人才的黄金时期 春招中 除
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • 计算机Java项目|尤文图斯足球俱乐部网上商城系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 最新整理Java面试八股文,大厂必备神器

    在看这篇文章之前 我想我们需要先搞明白八股文是什么 明清科举考试的一种文体 也称制义 制艺 时文 八比文 八股文章就四书五经取题 内容必须用古人的语气 绝对不允许自由发挥 而句子的长短 字的繁简 声调高低等也都要相对成文 字数也有限制 八股
  • 计算机Java项目|在线图书管理

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 计算机Java项目|学生成绩管理系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 最新整理Java面试八股文,大厂必备神器

    在此 我采访了数十名大厂的面试官和上百的的面试者 总结出了这一套Java面试八股文 这套八股文已经帮助了上百人拿到自己心仪的offer 我们先来看看这套八股文 Java基础面试八股文 操作系统中 heap 和 stack 的区别 什么是基于
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • 计算机Java项目|基于SpringBoot个人空间平台的设计与实现

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • JCMsuite应用:光学环形谐振腔模拟

    本案程演示了环形谐振腔的模拟 这种类型的集成光子器件 例如用作升 降滤波器或在传感应用中 当物质或粒子附着在环上时 通过测量其共振频率的位移来检测 对于集成光子电路中的无源光器件 s矩阵通常是研究的热点 它描述了通过端口 波导进入设备的电磁
  • 【自适应滤波】一种接近最佳的自适应滤波器,用于突发系统变化研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 【go语言】读取toml文件

    一 简介 TOML 全称为Tom s Obvious Minimal Language 是一种易读的配置文件格式 旨在成为一个极简的数据序列化语言 TOML的设计原则之一是保持简洁性 易读性 同时提供足够的灵活性以满足各种应用场景 TOML
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 学Python,一个月从小白到大神?看你怎么学!

    Python是一门超强大而且超受欢迎的编程语言 它被用在各种领域 比如网站开发 数据分析 人工智能和机器学习 学会Python会给你创造很多职业机会 所以绝对是值得一试的 但你有没有过这样的梦想 一个月时间 从Python小白变成Pytho
  • 2024年华为OD机试真题-查找接口成功率最优时间段-Python-OD统一考试(C卷)

    题目描述 服务之间交换的接口成功率作为服务调用关键质量特性 某个时间段内的接口失败率使用一个数组表示 数组中每个元素都是单位时间内失败率数值 数组中的数值为0 100的整数 给定一个数值 minAverageLost 表示某个时间段内平均失
  • 计算机Java项目|有机蔬菜商城

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产
  • 软件测试/测试开发|给你剖析闭包与装饰器的魔力

    测试管理班是专门面向测试与质量管理人员的一门课程 通过提升从业人员的团队管理 项目管理 绩效管理 沟通管理等方面的能力 使测试管理人员可以更好的带领团队 项目以及公司获得更快的成长 提供 1v1 私教指导 BAT 级别的测试管理大咖量身打造

随机推荐

  • QCustomPlot使用技巧

    QCustomPlot使用技巧 一 一 QCustomPlot坐标轴 一个QCustomPlot里有四个坐标轴 其中xAxis yAxis xAxis2和yAxis2分别表示如图所示的4个方向的坐标轴 xAxis2和yAxis2默认隐藏 可
  • vuecli中使用express和mockjs模拟数据

    首先npm安装express和mockjs npm i express npm i mockjs http mockjs com https expressjs com en 5x api html 之后在package json内添加启动
  • 蓝牙之三-StateMachine

    蓝牙和wifi的管理上都使用到了状态机 该状态机属于分层状态机管理消息 一个状态对应于一个
  • vue3 ref()

    通常我们在获取子组件的数据和方法的操作 解决 ref 对子组件进行数据的获取以及方法的触发 不同 需要在子组件 通过defineExpose进行方法的 数据的 暴露 案例 父组件
  • Swagger 3.0 使用指南

    Swagger 3 0 使用指南 Swagger 官网地址 https swagger io 1 Swagger 是什么 API Developmentfor Everyone Simplify API development for us
  • 探究:kafka生产者/消费者与多线程安全

    目录 1 多线程安全 1 1 生产者是多线程安全的么 1 1 消费者是多线程安全的么 2 消费者规避多线程安全方案 2 1 每个线程维护一个kafkaConsumer 2 2 单 多 kafkaConsumer实例 多worker线程 2
  • fastdfs返回的url_FastDFS接口API文档说明

    一 命令行的上传 上传命令1 usr local bin fdfs upload file 例如 系统根目录下有个文件需要上传到dfs服务器上 cairo 1 2 0 tar gz 执行上传命令如下 usr local bin fdfs u
  • 浅谈数学与信息学关系

    众所周知 数学是所有理科科目的基础 在信息学竞赛中 无论是NOIP NOI乃至IOI对竞赛选手的数学水平 数学思维以及对数学模型的构造都提出了更高的要求 当然 在信息学中 在程序中并不是生搬硬套数学公式 需要有灵活的对数据的处理 高效的算法
  • 处理器对原子操作的实现

    文章目录 引入 单核 多核 引入 原子操作对于我们来说 是非常熟悉的概念 从用户角度 可以用原子操作来替换重量级的锁同步 从而提高程序性能 底层实现角度 原子操作可以用于构建各种更重量级的同步操作 比如锁或屏障之类的 对于原子操作的实现来说
  • 微信小程序开发:实现地图导航功能

    地图导航功能是近年来移动应用中极为常见的功能之一 它能够为用户提供准确的地理位置信息以及最佳的路线规划 帮助用户快速准确地找到目的地 微信小程序开发中的地图导航功能 需要通过多种技术手段综合实现 包括地图API 定位 路线规划 搜索服务等
  • STM32讲解

    目录 一 STM32简介 二 STM32命名规则 三 STM32硬件系统简介 四 STM32常用模块以及外设 4 1 STM32引脚介绍 4 1 1通用输入工作模式简介 4 1 2通用输出工作模式简介 4 2 STM32 中断简介 4 3
  • Opencv 模块计算机类型“x64”与目标计算机类型“X86”冲突

    Visual Studio 2012 模块计算机类型 x64 与目标计算机类型 X86 冲突 在使用Visual Studio 2012编译运行OpenCV的时候 出现错误 fatal error LNK1112 模块计算机类型 X86 与
  • Jmeter在windows10命令行启动显示此时不应有

    Jmeter在windows10命令行启动显示此时不应有 Jmeter配置路径正常 直接运行目录下的Jmeter bat也能运行 但是在命令行输入Jmeter便一直显示此时不应有 查了网上这种问题的解决方法 都是说环境变量路径问题 1 路径
  • python 正则表达式 compile_使用compile()函数编译正则表达式【Python技术文章】

    如果需要对一个正则表达式重复使用 那么可以使用compile 函数对其进行预编译 以避免每次编译正则表达式的开销 complie 函数语法格式如下 compile pattern flags 0 上述格式中的参数pattern表示一个正则表
  • input 输入框 focus更改样式

    input标签的border和outline 想要实现input在触发焦点时更改样式 通常会想到使用 focus选择器 但当使用border去更改样式时 会发现失效了 input type text focus border 1px sol
  • 内部振荡器、无源晶振、有源晶振有什么区别?

    单片机要运行起来 必须有一个时钟信号 就好像人的心跳 这个时钟信号可以由无源晶振提供 可以由有源晶振提供 目前大部分的单片机也集成了内部振荡器 今天就来聊聊这三者的区别 1 内部振荡器 单片机内部集成的振荡器 一般为RC振荡器 好多人叫 内
  • AlexNet-深度卷积神经网络(CNN卷积神经网络)

    文章目录 深度卷积神经网络 AlexNet AlexNet 模型说明 激活函数选定 模型定义 读取数据集 训练AlexNet 小结 深度卷积神经网络 AlexNet 2012年 AlexNet横空出世 它首次证明了学习到的特征可以超越出手工
  • cJSON.c 和cJSON.h (进行了额外的封装)

    1 cJSON h cJSON h Copyright c 2009 2017 Dave Gamble and cJSON contributors Permission is hereby granted free of charge t
  • EMI原理、测量、解决

  • 进制和编码

    目标 了解计算机中一些必备的尝试知识 了解常见名词背后的意义 1 python的运行方式 交互式运行 脚本式运行 2 进制 2 1 进制的转换 计算机中底层的所有数据都是0101010101的形式存在的 八进制无法直接转为2进制 十进制转其