2017/01/25

[py2]大きい数字を16進数のstrにする

過去にもやったと思うのだが、歳のせいか思い出せないし、探してしまうので、タイトルで分かるようにしよう。

整数型のサイズが、1, 2, 4, 8バイトであればstructを使っていたのだが、3バイト長だったり、32バイト長だったりすると、そうもいかないと思う。

>>> x = 0x0123456789abcdef
>>> x
81985529216486895L
>>> '%016x' % x
'0123456789abcdef'
>>> '{:016x}'.format(x)
'0123456789abcdef'
>>> format(x, '016x')
'0123456789abcdef'

printするときのように%を使ってやっていたのだが、Stackoverflowにformatを使う例が書かれていた。
%を使うのはold styleなのか。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。