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

【C】十六进制(Hex)与ASCII

十六进制(Hex)与ASCII的关系

十六进制(Hexadecimal)和ASCII(American Standard Code for Information Interchange)是两种不同的编码方式,但它们可以相互转换,用于表示字符或数据。


1. ASCII码:字符的数字化表示

ASCII 是一种字符编码标准,用 7位二进制数(0~127) 表示英文字母、数字、标点符号和控制字符(如换行、退格)。

  • 可打印字符:例如 A65(十进制),a97
  • 控制字符:例如 换行(LF)10回车(CR)13

ASCII码表(部分)

字符十进制十六进制二进制
A650x4101000001
a970x6101100001
0480x3000110000
!330x2100100001

2. 十六进制:更紧凑的二进制表示

十六进制(Hex)是二进制的一种简写形式,每 4位二进制 对应 1位十六进制(0~9, A~F)。

  • 为什么用十六进制?
    • 二进制(如 01000001)太长,十六进制(0x41)更易读。
    • 计算机底层数据(如内存地址、机器码)通常用十六进制表示。

二进制 ↔ 十六进制转换

二进制十六进制
00000
01015
1010A
1111F

3. 十六进制与ASCII的转换

(1)ASCII字符 → 十六进制

例如字符 'A'

  1. 查ASCII表:A → 十进制 65
  2. 十进制转十六进制:650x41

(2)十六进制 → ASCII字符

例如 0x61

  1. 十六进制转十进制:0x6197
  2. 查ASCII表:97 → 字符 'a'

4. 实际应用示例

案例1:字符串 "Hello" 的十六进制表示

字符ASCII十进制十六进制
H720x48
e1010x65
l1080x6C
l1080x6C
o1110x6F

十六进制序列0x48 0x65 0x6C 0x6C 0x6F"Hello"


5. 扩展知识

(1)Unicode 和 UTF-8

  • ASCII 只能表示128个字符,而 Unicode(如UTF-8)扩展了字符集(支持中文、emoji等)。
  • UTF-8 中,一个字符可能占用 1~4个字节(十六进制表示更长)。

(2)计算机中的存储

  • 内存中的数据(如文本、图片)最终都以 二进制 存储,但调试时常用 十六进制 显示(如 0xDEADBEEF)。

(3)编程中的使用

  • C语言char c = 0x41;(等价于 char c = 'A';)。
  • Pythonbytes.fromhex("48656C6C6F")b"Hello"

总结

  • ASCII 是字符的数字编码(如 A65)。
  • 十六进制 是二进制的紧凑表示(如 650x41)。
  • 转换关系
    字符 ↔ 十进制 ↔ 十六进制 ↔ 二进制
  • 应用场景:网络协议、文件解析、逆向工程、嵌入式调试等。

相关文章:

  • okhttp 实现长连接的完整方案
  • 降低显存,优化性能方案 MHA MQA GQA MLA MFA
  • 《高等数学》(同济大学·第7版)第四章第一节不定积分的概念与性质
  • CMake测试find_package()命令的相关原理
  • 商品中心—2.商品生命周期和状态的技术文档
  • [FX5U-PLC] 变频器的多段速变频调速控制系统
  • 可视化如何全方位赋能销售工作
  • Windows 文件路径与文件名限制
  • 大数据零基础学习day1之环境准备和大数据初步理解
  • CMOS图像传感器系列--(五)HDR之大小像素技术
  • 菲尔斯特传感器,超声波风速风向传感器助力绿色能源发展
  • 基于STM32F103C8T6单片机双极性SPWM逆变(软件篇)
  • 【单片机期末】汇编试卷
  • 51单片机读取PCF8563时钟芯片
  • IMX6ULL--EPIT 定时器理论
  • Docker加入用户组
  • Android Wi-Fi 连接失败日志分析
  • CanFestival移植到STM32G4
  • DataFrame中.iloc 属性
  • Java面向对象思想以及原理以及内存图解
  • 电子书店网站开发/优化网站页面
  • 石家庄 网站编辑/南宁seo推广
  • 阿里巴巴怎么建设网站/seo点击排名软件哪家好
  • 网站开发设备费用计入什么科目/百度极速版app下载
  • 泉州官方网站/谷歌seo是什么职业
  • 百度蜘蛛抓取网站模块/国内广告投放平台