[問題] 關於big endian轉little endian的問題

看板C_and_CPP作者 (...)時間16年前 (2009/11/12 15:35), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/3 (看更多)
我想請問一個 signed short (16bit) big endian 轉 little endian的問題 我想知道在做signed short 轉換時 跟unsigned short比較起來 有什麼不一樣或是需要注意的地方嗎? 以下附上unsigned short endian轉換的方式~ 假設i是unsigned short的data i = ((i>>8)&0xff)+((i << 8)&0xff00); 現在的問題是如果i是signed short,那轉換上會有什麼不一樣嗎? 感謝各位前輩的熱心回答~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.186.194

11/12 17:29, , 1F
轉換的值會一定是 2 Bytes?在 x86 CPU 上 signed 跑
11/12 17:29, 1F

11/12 17:29, , 2F
sar 指令、unsigned 跑 shr 指令,看 >> 用在哪種。
11/12 17:29, 2F

11/12 17:57, , 3F
呃 他有用 &0xff 了應該不會有差吧...
11/12 17:57, 3F

11/12 18:32, , 4F
嗯,只是轉換endian上,以這方法不會有差別
11/12 18:32, 4F

11/12 18:33, , 5F
signed的sar是會偷偷保留符號位元的值,不影響轉換。
11/12 18:33, 5F

11/13 10:44, , 6F
謝謝各位的幫忙~
11/13 10:44, 6F
文章代碼(AID): #1A-xh7Ru (C_and_CPP)
文章代碼(AID): #1A-xh7Ru (C_and_CPP)