## 进制转换 经常在进行协议解析时需要用到 十六进制中, 每两个为一个byte, 如4字节表示`00 00 00 FF` ### 十进制和十六进制 > hex() 到十六进制 > int() 到十进制 **python十六进制表示`0x`和`\x`的区别:** - `0x42` 是数字`66` - `\x42` 是字符`B` ```python >>> hex(24) # 十到十六 '0x18' >>> int('0x18', 16) # 十六到十 24 ``` ### 十进制和二进制 > bin() 到二进制 ```python >>> bin(110) # 十到二 '0b1101110' >>> int('0b1101110', 2) # 二到十 110 ``` ### 十进制和八进制 > oct() 到八进制 - python2.x 八进制表示前缀`0` - python3.x 八进制表示前缀`0o` ```python >>> oct(12) # 十到八 '014' >>> int('014', 8) # 八到十 12 ``` ### 其他 - `repr()` 可以把报文转为十六进制表示输出