Re: [問題] bitwise 如何取高低位元

看板C_and_CPP (C/C++)作者 (鬼翼&娃娃魚)時間16年前 (2009/10/26 18:46), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《pilipalabon (說好的性福呢?)》之銘言: 老實說小弟我實在不太懂您的問題, 直接回文好了.... : 假設今天我有一筆資料為 : ULong x = 0xe8a105f4 : UShort x1 = (UShort)x; : UShort x2 = (x>>16); : x1 == 0x5f4; //low : x2 == ffffe8a1; //high 以這個case來說, x = 0xE8A105F4 那低位元16 bits x1 = 0x05F4 高位元16 bits x2 = 0xE8A1 如果你的ULong與UShort有正確的typedef成unsigned的型態.... 應該不至於出現x2 = 0xFFFFE8A1這個結果出來才對.... 而且這個結果的bit count就不對了吧@_@" : 我在使用 UShort x2 = (x>>16) & 0x0000FFFF; : 依然不行.. : 但我用 : printf("%x\n", x2 & 0x0000FFFF); : 這樣x2 == e8a1 小弟剛拿DevC++試了一下上面兩個都OK的啊....@_@" : 請問要如何才能取到高位址呢? 謝謝 您要不要check一下ULong與UShort的define?? 再不然有其他相關的code嗎@_@" == PS. 在不同大小'印弟安'的情況下結果可能就有差了.... 但是, 最多是對應16 bits內資料順序不同.... 再怎麼樣也不會有個FFFF在前面才對啊@_@" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.41.4 ※ 編輯: VictorTom 來自: 220.134.41.4 (10/26 18:47)

10/26 18:49, , 1F
endian~~小弟我老是不記得怎麼拼....XD
10/26 18:49, 1F
文章代碼(AID): #1AvNtrot (C_and_CPP)
文章代碼(AID): #1AvNtrot (C_and_CPP)