作者KyoYang (–羊–)
看板Python
標題[問題] 有關位元組轉換
時間Thu Apr 10 13:30:34 2008
請教各位先進,
今假設有一值為 x = 0xd4c3b2a1
我打算做位元組的轉換,因此以四個bytes為一組將其反序排列,
理想的話應該是會變成 0xa1b2c3d4 = 2712847316
我是這樣寫的
x=(x>>24)|((x<<8)&0x00ff0000)|((x>>8)&0x0000ff00)|(x<<24)
但是結果會變成
59887867047101396
即 0xD4C3B2A1B2C3D4 這個結果
會多出前面的 d4c3b2
想請教該如何只顯示 a1b2c3d4 呢?
--
│ ███ ▂▄▃
││││
│ ˋ ◤Mooncat~◥││││ 「為什麼
,
│ ‵ ◤ ◥▏*_▂▁ ▋
│││ 為什麼教授這麼雞掰
│ ′ 、▌█
▊▉▏ │ 沒天理啊
……
…」
◢ ◤◢
◣▋◢ █
▋▊ ▕▅▇
◥◥*Mooncat~
◢ ▂▇ˋ█▆◤
▂_ ▁▄▆▇▃
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.130.175.128
推 weijr:前面會多出東西,是因為你沒把該去掉的東西去掉 04/10 13:51
→ weijr:python 有互動 shell,多多利用吧 04/10 13:53
→ KyoYang:不好意思,請問這部份該如何去掉?可否說得更詳細一點… 04/10 13:52
→ KyoYang:我就是用 shell run的 ^^" 04/10 13:54
推 liangjr:再加一層mask吧 跟你中間幾個一樣 x = x & 0x0ffffffff 04/10 15:29
→ KyoYang:感謝l大,此法OK! 04/10 16:57