编程中的『魔数』
魔术数字(magic number)
在程序设计中,魔术数字可能指:
- 缺乏解释或命名的独特数值。常常在程序中出现多次,并且可以(从规范上而言也应当)被有名字的常量取代。
- 用于识别一个文件格式或协议类型的一段常量或字符串。
- 不易与其它值混淆的值,例如 UUID
文件中的魔数
文件类型 | 位置 | 魔数 | 含义 |
---|---|---|---|
GIF | 开头 6 字节 | 47 49 46 38 37 61 | GIF87a |
JPEG | 开头 2 字节 | FF D8 | |
PNG | 开头 8 字节 | 89 50 4E 47 0D 0A 1A 0A | ?PNG\r\n?\n |
Unix 或 Linux 脚本以 “Shebang” 开头 | 开头 2 字节 | 23 21 | #! |
ELF | 开头 4 字节 | 7F 45 4C 46 | ?ELF |
开头 4 字节 | 25 50 44 46 | ||
7z | 开头 6 字节 | 37 7A BC AF 27 1C | 7z???? |
ZIP | 开头 2 字节 | 50 4B | PK(作者名字缩写) |
BZ2 | 开头 3 字节 | 42 5A 68 | BZh |
tar | 第 256~261 字节 | 00 75 73 74 61 72 | ?ustar |
硬盘第一个扇区最后 2 字节 | 硬盘第一个扇区最后 2 字节 | 55 AA |