二进制与十六进制基础
熟练地在十进制、二进制和十六进制之间转换
二进制与十六进制基础 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
密码学以位和字节为基础。本课将帮助您熟练掌握二进制和十六进制——每种加密算法的原生语言。
为什么使用二进制
计算机将所有内容存储为 0 和 1。位是一个二进制数字。字节由 8 个位组成,可以表示 0–255 的值。所有密码运算都在这一层面上进行。
二进制转十进制
二进制 1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8+0+2+1 = 十进制 11。每个位的位置都是 2 的幂,从最右侧的位(2⁰)开始。
十进制转二进制
将 42 转换为二进制:42÷2=21r0,21÷2=10r1,10÷2=5r0,5÷2=2r1,2÷2=1r0,1÷2=0r1。从下往上读取余数:101010。
十六进制基础
十六进制使用 16 个数字:0–9 和 A–F(A=10、B=11、……、F=15)。一个十六进制数字表示 4 个位(一个半字节)。两个十六进制数字表示一个字节。
二进制转十六进制
从右侧开始,将二进制数分成 4 位一组的半字节:
10111010 → 1011 1010 → B A → 0xBA
Python:hex(0b10111010) → '0xba'
密码学中的十六进制
SHA-256 输出 32 个字节,以 64 个十六进制字符显示。AES-128 密钥为 16 个字节 = 32 个十六进制字符。十六进制是密码学数值的通用显示格式。
Python 转换
bin(255) # '0b11111111'
hex(255) # '0xff'
int('ff', 16) # 255
bytes.fromhex('deadbeef') # b'\xde\xad\xbe\xef'
'deadbeef'.upper() # 'DEADBEEF'
字节序:大端序与小端序
大端序先存储最高有效字节。小端序先存储最低有效字节。网络协议(TCP/IP)使用大端序;x86 CPU 使用小端序。
预览 XOR
XOR 按位进行运算:0101 XOR 0011 = 0110。用十六进制表示:0x05 XOR 0x03 = 0x06。XOR 是 AES、流密码和哈希函数中的基础运算。
十六进制中的常见密码学数值
魔数字节用于识别文件格式:PDF 以 0x25504446 开头,PNG 以 0x89504E47 开头。SHA-256 初始化值等密码学常量也以十六进制形式规定。
快速检查
十六进制数 0xFF 的十进制值是多少?
回顾
太棒了!您现在已经可以在十进制、二进制和十六进制之间进行转换。接下来,我们将学习模运算——公钥密码学的数学引擎。
常见问题解答
「二进制与十六进制基础」课时是免费的吗?
是的 — 「二进制与十六进制基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「二进制与十六进制基础」这节课中我会学到什么?
熟练地在十进制、二进制和十六进制之间转换 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「二进制与十六进制基础」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 二进制与十六进制基础
- 模运算基础
- 质数与因式分解
- GCD、欧拉函数与数论入门