当前位置: 首页 > news >正文

二进制为什么使用记事本读取会出乱码

文件其实都是电信号,没有真正的 0 1 数字,有的只是高低电平

二进制读取:(二进制读取时一种显示方式,把高低电平显示出来)

把高低电平用数字01表示 就读取成0-1形式,8为一个字节(即8位为一个数字0-255)就读取成8位的形式。或者读取16个高低电平显示出来作为16位数字(计算机读取8的整数倍(字节)电平,用来显示)

几进制都可以,表示的8位电平,10进制0-255表示的也是8位电平,一个字节
16进制是电平的表示方法,8位电平,可以用两个16进制数表示,或者用最大3位10进制数255表示

十进制十六进制二进制电平(8 位)
100xA00001010
150xF00001111
160x1000010000
310x1F00011111
2550xFF11111111

记事本读取:

高低电平是0-1,8个为一组读取成数字,再使用编码规则把数字映射成字符。

所以记事本写数字并保存下来,二进制文件只有数据信息,不包含记事本的注解信息。
但记事本会根据所选的编码保存文件。如果书写a

  • 如果用 ANSIUTF-8(无 BOM),保存时就真的只会写入一个字节 0x61,和你 Python 写的是一模一样的。

  • 如果用 UTF-8 with BOM(带字节序标记),文件开头会额外加 3 个字节 0xEF 0xBB 0xBF 作为标记。这样文件不止有 97,而是多了“注解信息”。

16进制有好处:
16进制转化成二进制很简单 ,比如1C 可以把 1 和C拆开分别转化成4位2进制,但28却不行,不能把2拆成几位2进制,8也是,再拼接起来。这是因为,16进制正好是最大数15 是 1111,正好是2进制的整数倍

uint8和uint16:
用于选取几位二进制变成10进制。uint8是选取8位二进制,得到一个十进制数最大到255
注意 16进制也同理,有的选取8位2进制形成一个16进制数 (2A,注意2A是1个16进制数),且16进制数更容易计算,四个二进制一组就可以算对应的16进制。

http://www.lryc.cn/news/622878.html

相关文章:

  • 密码学入门笔记4:分组密码常见算法1——DES
  • Custom SRP - Baked Light
  • 用Pygame开发桌面小游戏:从入门到发布
  • 搜索 AI 搜索 概率论基础教程第3章条件概率与独立性(二)
  • 概率论基础教程第3章条件概率与独立性(一)
  • 《P4180 [BJWC2010] 严格次小生成树》
  • [极客时间]LangChain 实战课 ----- 代理(上)|(12)ReAct框架,推理与行动的协同
  • Manus AI与多语言手写识别的技术突破与行业变革
  • 《Python学习之字典(一):基础操作与核心用法》
  • 【每日一题】Day5
  • 电路设计——复位电路
  • 设计模式之静态代理
  • Java 10 新特性及具体应用
  • ABB焊接机器人弧焊省气
  • 多机编队——(6)解决机器人跟踪过程中mpc控制转圈问题
  • 【轨物方案】预防性运维:轨物科技用AI+机器人重塑光伏电站价值链
  • MyBatis极速通关中篇:核心配置精讲与复杂查询实战
  • 大模型教机器人叠衣服:2025年”语言理解+多模态融合“的智能新篇
  • Tomcat架构深度解析:从Server到Servlet的全流程揭秘
  • blender制作动画导入unity两种方式
  • ENSP的简单动态路由rip协议配置
  • 广东省省考备考(第七十八天8.16)——资料分析、判断推理(强化训练)
  • Docker目录的迁移
  • GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制
  • 6JSON格式转python并实现数据可视化
  • 在ubuntu系统上离线安装jenkins的做法
  • 零基础学习人工智能的完整路线规划
  • Flink Stream API 源码走读 - window 和 sum
  • (第十七期)HTML图像标签详解:从入门到精通
  • 【完整源码+数据集+部署教程】高尔夫球追踪与识别系统源码和数据集:改进yolo11-LAWDS