44211


python3で

[code]

    a = 0x00001234ABCD
    
[/code]

のような変数を16進数で出力すると

[code]

    1234ABCD
    
[/code]

となってしまいます。  
０を省略させずにそのまま表示するにはどうすればいいのでしょうか？  
それともpython2でしかできないのでしょうか？

[code]

    a = 0x00001234ABCD
    
    print(hex(a))
    0x1234abcd
    
    print(format(a,"x"))
    1234abcd
    
[/code]


CC BY-SA 4.0
2018-05-24T06:23:13.357
44210
2018-05-24T07:26:21.343
2018-05-24T07:11:26.180
19110
28644
question
python python3
python3における0の省略


数を出力する際先頭にゼロを付けるには、[`str.format()`](https://docs.python.jp/3/library/stdtypes.html#str.format)
などのフォーマット関数を使う方法があります。

[code]

    >>> a = 0x00001234ABCD
    >>> print("0x{:012x}".format(a))
    0x00001234abcd
    >>> print("0x{:012X}".format(a))
    0x00001234ABCD
    
[/code]


CC BY-SA 4.0
2018-05-24T06:48:24.783
44211
2018-05-24T06:48:24.783
19110
44210
answer


n進数の接頭辞(`0x`)を自動で付与させたい場合は`format`関数のフォーマット指定`{}`で`#`を含める方法がありますが、桁数は接頭辞も考慮して指定する必要があります。

[code]

    print('HEX: {:012X}'.format(0x00001234ABCD))
    print('HEX: {:#014X}'.format(0x00001234ABCD))
    
[/code]

結果

[code]

    HEX: 00001234ABCD
    HEX: 0X00001234ABCD
    
[/code]


CC BY-SA 4.0
2018-05-24T07:26:21.343
44213
2018-05-24T07:26:21.343
3060
44210
answer