2
我在python中寫了一個簡單的腳本,它將十六進制值重寫爲它們的小數點32位有符號的副本。python in cmd不會打印負值
data = [data.rstrip('\n') for data in open('dlzkyHEAD.txt')]
for value in data:
print(value, end=' -> ')
x= int(value,16)
print(x) if x<2**31 else x-2**32
雖然在Python Shell一切工作是工作,但是當我把它們寫到一個文件,並在Windows中執行的在cmd它不會打印負值。
Python的外殼輸出:
8049008 -> 134516744
80490c0 -> 134516928
80490d0 -> 134516944
80490d8 -> 134516952
8049d84 -> 134520196
8049d88 -> 134520200
8049da4 -> 134520228
c -> 12
ffffefe8 -> -4120
ffffffe0 -> -32
ffffffe4 -> -28
ffffffe8 -> -24
ffffffec -> -20
fffffff0 -> -16
fffffff4 -> -12
fffffffc -> -4
CMD輸出:
8049d88 -> 134520200
8049da4 -> 134520228
c -> 12
ffffefe8 -> ffffffe0 -> ffffffe4 -> ffffffe8 -> ffffffec -> fffffff0 -> fffffff4 -> fffffffc ->
你是如何執行的呢?你是什麼意思「在Windows cmd中執行?」而不是「在python shell中工作」 –
我的意思是這樣的: C:\ Users \ User_Name \ AppData \ Local \ Programs \ Python \ Python36-32 \ python.exe script.py – KnucklePunch
您的意思是'print(x如果x <2 ** 31 else x-2 ** 32)'? –