关键字手册

从二进制、八进制、十六进制这些数制基础讲起,再逐语言解析关键字:每个关键字是做什么的、该怎么用,配中文讲解与代码示例。顶部搜索框可跨语言全局检索。

🔢 数制基础:二进制、八进制、十六进制

计算机只认识 0 和 1(一个开关的开与关),所以二进制是机器的母语。但二进制写起来太长,人们又发明了八进制(3 位二进制一组)和十六进制(4 位一组)来缩写。理解这三种进制,是读懂所有编程语言的第一步。

二进制 Binary

基数 2 · 符号:0, 1

每一位是一个 bit,8 位 = 1 字节。CPU 指令、内存、网络传输的底层都是它。

0b1010 = 10

八进制 Octal

基数 8 · 符号:0–7

3 位二进制合为 1 位八进制。Unix 文件权限 0o755 就是最经典的应用。

0o17 = 15

十六进制 Hex

基数 16 · 符号:0–9, A–F

4 位二进制合为 1 位十六进制。颜色 #FF8800、内存地址都用它表示。

0xFF = 255

十进制 Decimal

基数 10 · 符号:0–9

人类日常用的进制。程序里不带前缀的数字默认都是十进制。

42 就是 42

进制换算对照表(0–15)

十进制二进制八进制十六进制
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

各语言的字面量写法

语言二进制八进制十六进制
C / C++0b1010(C23/GCC扩展)017(0 开头)0xFF
Python0b10100o170xFF
Java0b1010017(0 开头)0xFF
Go0b10100o170xFF
C#0b1010无字面量(用 Convert)0xFF
JavaScript0b10100o170xFF
Rust0b10100o170xFF
BASIC&B1010&O17&HFF
DOS 批处理—set /a n=017set /a n=0xFF
⚠️ 注意 C / Java 里 017 是八进制(= 十进制 15),不是十进制的 17!新手最容易在这里踩坑。Python 3 已废除这种写法,必须用 0o17。

位运算:直接操作二进制位

运算符含义示例结果
&按位与:都为 1 才为 1(常用于取掩码)0b1100 & 0b10100b1000 (8)
|按位或:有一为 1 则为 1(常用于合并标志)0b1100 | 0b10100b1110 (14)
^按位异或:不同为 1(常用于翻转位、简单加密)0b1100 ^ 0b10100b0110 (6)
~按位取反:0 变 1、1 变 0~0b1100...0011 取反
<<左移:相当于 × 2ⁿ0b0011 << 20b1100 (12)
>>右移:相当于 ÷ 2ⁿ0b1100 >> 20b0011 (3)
💡 位运算几乎所有语言都通用(C / C++ / Java / Python / Go / C# / JavaScript 写法一致)。典型用途:权限掩码(如 0o755)、开关标志位、颜色通道提取((0xFF8800 >> 16) & 0xFF 取出红色分量)。

🔄 进制转换器(试一试)