逆向基础--编码(001)

news/2025/10/28 19:44:13/文章来源:https://www.cnblogs.com/MrHSR/p/19171677

逆向基础--编码(001)

一.位与字节

  比特(Bit):1比特就是1位,每个0或1就是一个位,位是数据存储的最小单位。位是二进制表示,8位二进制是一个字节。 8位二进制(就是8个比特)最大:11111111

  字节(Byte):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。

  1个字节等于8位二进制, 8位二进制可存储从00000000到11111111的256个不同的值中的一个。也就是可以存储整数:0~256,以及 -128到127(含)的有符号数字。

   可以理解为字节是容器,一个容器有8个格子,每个格子存放一个bit (0和1)

 

二.字符编码  

  字符编码包括: ASCII编码和Unicode编码

  ASCII编码:使用一个字节(8bit)来表示一个字符,但实际上只使用了7位,共128个字符。包括英文字母、数字、标点符号和控制字符。由于ASCII只能表示128个字符,对于其他语言的字符无法表示,因此出现了多种扩展的字符集(如ISO-8859-1)和Unicode。

  Unicode是一个旨在包含所有字符的字符集。如UTF-8、UTF-16、UTF-32。

        UTF-8:是一种变长编码,使用1到4个字节来表示一个字符。英文字符在UTF-8中仍然用一个字节表示,与ASCII兼容。而中文等其他字符则用多个字节。  

        UTF-16:使用2个或4个字节来表示一个字符。

        UTF-32:固定使用4个字节表示一个字符。

 计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。

字符【A】的转换示例字符'A'在UTF-8编码下是一个字节,且与ASCII相同,其十六进制为0x41。
现在要将0x41转换成二进制。4和1分别对应4位二进制:
4 -> 0100
1 -> 0001
所以字符【A】的16进制为0x41, 转为二进制就是 01000001

 

字符【中】的转换示例分二种编码:Unicode和UTF-8Unicode: U+4E2D (等于0x4E2D)
4E2D (十六进制) = 0100 1110 0010 1101 (二进制,共15位,我们将其扩展为16位,即两个字节)
U+4E2D的二进制表示是:100111000101101(15位),但通常我们按16位处理,即前面补0,成为:0100111000101101。UTF-8编码: 11100100 10111000 10101101 (二进制,属于三个字节)
三个字节分别转十六进制: E4 B8 AD
实际存储,这三个字节连续存储: 111001001011100010101101

  在Unicode中,码点通常表示为 U+XXXX 的形式,其中XXXX是十六进制数字。这种表示法是Unicode标准约定的。而在编程语言或内存地址中,我们通常使用0x作为十六进制的前缀

  为什么Unicode码点用U+开头?

    ---这是Unicode标准规定的写法,用于明确表示这是一个Unicode码点。它直接告诉我们这个数字是Unicode字符的编号。
  为什么字符【中】的16进制为4E2D?

    ---Unicode码点的分配是有规律的,汉字集中在U+4E00到U+9FFF这个区间(称为CJK统一汉字)。'中'这个字位于这个区间内,具体是U+4E2D。

  用户输入: '中' -->应用程序: 识别为 Unicode 字符-->操作系统: 查找 Unicode 码点表 → U+4E2D-->转为字节-->存储或传输

 

三.转换关系

字节--->16进制 
示例字节:
11100100 二进制: 1110 0100 十六进制: E 4 结果为:E4

 

16进制-->字节
十六进制OxE4
转为二进制:1110  0100 (E对应1110  4对应0100)
字节结果为:11100100  

 

 

四.前缀约定

  3.1不同领域的十六进制前缀约定

领域前缀示例说明
编程语言 0x 0x4E2D C/C++/Java/Python等语言标准
Unicode标准 U+ U+4E2D Unicode码点的专用表示法
汇编语言 h后缀 4E2Dh 某些汇编器的约定
通用表示 无或# 4E2D 或 #4E2D 文档或通用场景

  3.2不同领域的二进制约定

领域前缀/后缀示例说明
现代编程语言 0b 或 0B 0b1010 C++14+, Java 7+, Python, Rust, Go
传统编程语言 无标准表示 B"1010" 需要库函数或特殊语法
汇编语言 b 后缀 1010b MASM, NASM, 部分汇编器
汇编语言(其他) % 前缀 %1010 某些汇编器变体
Verilog/VHDL 'b 前缀 8'b1010_1100 硬件描述语言
文档/教科书 下标₂ 1010₂ 学术论文、教材
网络协议 无前缀 10101100 RFC文档、协议规范
配置文件 无标准 多种形式 依具体软件而定

 注意:0x是一个前缀,表示后面跟着的数字是十六进制数。如:0x41

   0b 或 0B是一个前缀,表示二进制。如:0b01000001

   0 是一个前缀,表示八进制。如:041

     十进制是没有前缀的

   HTML实体:中(十六进制)或 中(十进制) 

   CSS Unicode:\4E2D(十六进制)

   XML:中(十六进制)

 

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

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

相关文章

20251027 - 倍增 ST表

前言: 怎么标题改来改去的? 概念 因为每一个整数都可以转换成对应的二进制,所以可以表示成 \(a_0 \times 2^0 + a_1 \times 2 ^ 1 + a_2 \times 2 ^ 2 + a_{len} \times 2 ^ {len}\)。 因此,对于求跳 \(x\) 步后的…

周康阳精选冲刺省选国赛思维训练题

agc052_a Long Common Subsequence 解题思路 代码实现点击查看代码agc052_a Long Common Subsequence 解题思路 代码实现点击查看代码agc052_a Long Common Subsequence 解题思路 代码实现点击查看代码agc052_a Long C…

Luogu P7913 [CSP-S 2021] 廊桥分配 题解 [ 绿 ] [ 贪心 ] [ 前缀和 ] [ STL ]

廊桥分配 笑点解析:VP 的时候想这题想了 20min,比想 T3 的时间长。 关键结论:在不考虑廊桥限制的情况下,给每个飞机分配一个最小的廊桥编号。当最终廊桥数目大于等于其对应编号时,飞机才能被分配到廊桥。 理解起来…

10-27 CSP 赛前比赛记录

DNA 序列(DNA)哈希题啊,但是忘了怎么写哈希了 qwq,所以…… 思路大概就是维护一个长度为 \(k\) 的四进制数,类似于一个滑动窗口,就是除以 \(4\) 后加上右边新加的数乘上 \(4^k\),就可以得到其对应的哈希值,取模…

P3939 数颜色

这道题是暑假写的。但是当时数据结构学傻了,写了个莫队。 然后刚刚发现没过,连忙重新看题。 想了想发现跟可以跟Ynoi有一道区间众数题一个思路处理一下,直接二分就完了。 就记录一下每个数的出现次数。这里还有个小…

完整教程:Docker 搭建 Nginx 并启用 HTTPS 具体部署流程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI开发微信小程序-有感

我先有一版html代码(有一个个人网站,里面都是一些在线使用的工具) 抽取出了其中一个小功能,让AI根据现有html代码直接转成小程序 直接拿过来在微信小程序开发IDE上,进行测试 稍微调整一下,就OK了。 AI真的是太有…

价值流智能时代:DevOps平台如何成为企业高效交付的核心引擎? - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年压力容器品牌综合实力排行榜

文章摘要 随着化工、石油、能源等行业的快速发展,压力容器作为核心设备在工业生产中扮演着越来越重要的角色。2025年压力容器行业将更加注重技术创新、安全性能与环保标准,头部企业通过智能化制造与定制化服务持续提…

2025年压力容器厂家综合评测与选择指南

摘要 随着化工、石油、能源等行业的快速发展,压力容器作为核心设备在工业生产中扮演着越来越重要的角色。2025年压力容器行业将更加注重技术创新、安全性能和服务质量,市场竞争也日趋激烈。本文基于行业数据和技术参…

2025年口碑好的压力容器工厂/厂家前十强

文章摘要 压力容器行业在化工、石油、动力及食品等领域持续增长,2025年预计全球市场规模将达千亿美元,驱动因素包括工业自动化升级和环保要求提升。本文基于行业数据、用户口碑和技术参数,综合评测前十品牌,并提供…

AI Agent 从零到百万价值迭代之路 - 智慧园区

这个时代Agent的本质:用精心设计的prompt作为"控制语句",用LLM作为"解释器",构建一个能处理模糊输入的动态系统-互联网创业老兵大模型时代为什么是革命 经过了近2年的Agent开发,在法律、工业、…

项目构建优化:CMake

CMake 介绍 在 Linux 工程管理中,make 是常用的工程管理器,但它依赖的 Makefile 语法晦涩、编写复杂,尤其在多文件、跨平台项目中维护成本极高。为解决这一问题,主流方案有两种:使用 automake 生成 configure 脚本…

项目构建优化:Make 与 Makefile

项目构建优化背景与 Make 工具基础 项目构建的核心痛点 在模块化开发中,会将可复用的函数接口、数据结构封装为源文件(.c) 和头文件(.h) 。当项目规模扩大(如大型 C/C++ 项目、Linux 内核),源文件与头文件数量…

科幻——面包

“卖面包咯,卖面包咯”一个面包小贩的声音从街边传来,但毕竟卖不出去啊,哪个现代人还买路边摊上的面包呢?饥寒交迫而又无奈,真有点“现代卖炭翁”的感觉了。 有什么办法呢?自从专业坍塌的那一瞬间,它便看清了它…

2025年中国钢结构码垛机制造商Top 5排名解析

摘要 钢结构码垛机行业随着工业自动化浪潮的推进,正迎来快速增长期,预计2025年全球市场规模将突破百亿元,中国作为制造大国,占据重要份额。行业发展聚焦于智能化、高效化和定制化,企业竞相提升技术实力和服务水平…

2025年钢结构码垛机品牌前十强权威盘点:江苏众利达引领智能制造新浪潮

文章摘要 随着工业4.0时代的深入发展,钢结构码垛机行业正迎来智能化升级的关键时期。2025年全球智能码垛设备市场规模预计突破百亿美元,中国作为制造业大国占据近40%市场份额。本文基于技术参数、市场口碑、服务能力…

处理django.db.utils.OperationalError: attempt to write a readonly database错误

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

10.28代码大全2

10.28代码大全2今天翻了《代码大全2》的“前期准备”章,原来写代码前花半小时理需求、画个简单架构图,比上来就敲键盘省时间多了,之前总踩“写一半发现逻辑错”的坑,现在算找到原因了。

[GESP202509 二级] 菱形

[GESP202509 二级] 菱形GESP202509 二级 菱形 题目描述 小 A 想绘制一个菱形。具体来说,需要绘制的菱形是一个 n 行 n 列的字符画,n 是一个大于 1 的奇数。菱形的四个顶点依次位于第 1 行、第1列、第 n 行、第 n 列的…