有关不同string,int和hex类型的问题

时间:2014-02-15 04:47:52

标签: python string hex type-conversion

我对以下一些数字表示感到困惑:

  1. a = 0xff#十六进制数

  2. a = 'ff' #ASPF ff

  3. a = '\xff'#这是什么?

  4. a = b'ff'#这是什么?

  5. 如何将这些类型相互转换?

    即,1-> 2,2-> 1,1-> 3,3->等

1 个答案:

答案 0 :(得分:2)

1 是一个数字,

2 是一个包含两个字符'f'的字符串,

3 是一个包含单个字符的字符串

4 在python2中等于 2 ,但在python3中则不等。

1←→3

In [440]: chr(0xff)
Out[440]: '\xff'

In [441]: ord('\xff')
Out[441]: 255

4←→2:

#python2:
In [444]: b'ff'=='ff'
Out[444]: True

#python3: ('bytes' is a builtin type different from 'str' in py3)
In [2]: type(b'ff')
Out[2]: builtins.bytes

In [3]: b'ff'=='ff'
Out[3]: False

<强>更新

1←→2:

In [455]: hex(a)[2:]
Out[455]: 'ff'

3←→2: 3-> 1&gt; 2,亲自动手;)