当前位置: 代码迷 >> 综合 >> Python 二进制:‘\x‘、‘0x‘ 和 little endian、big endian
  详细解决方案

Python 二进制:‘\x‘、‘0x‘ 和 little endian、big endian

热度:31   发布时间:2023-12-15 05:08:37.0

文章目录

  • 1. '\x'与'0x'
  • 2. little endian 与 big endian

1. ‘\x’与’0x’

  • '\x''0x' 的意义是不同的:

    >>> int('\x41',16)
    10
    >>> int('0x41',16)
    65
    >>> "\x41"
    'A'
    
  • 不论'\'后面接什么,其本身都是字符串转义(string escape code)的意思。
    比如\xx为十六进制,则\x代表一个十六进制表达;若xn,这里\表示文字转义,\n表示换行符,等等

  • Python 使用类似的转义,将不能用ASCII表示的字符打印出来

    >>> chr(65)
    'A'
    >>> chr(11)
    '\x0b'
    

2. little endian 与 big endian

这里是针对比特序来讲的,对于数字0xB4(10110100)

  • big endian:| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
    即,最高有效位位于左侧
  • little endian:| 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
    即,最高有效位位于右侧

参考:

  1. Difference between different hex types/representations in Python
  2. Big Endian 和 Little Endian 详解
  相关解决方案