看板 C_and_CPP 關於我們 聯絡資訊
我想請問一個 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
twotwoone:轉換的值會一定是 2 Bytes?在 x86 CPU 上 signed 跑 11/12 17:29
twotwoone:sar 指令、unsigned 跑 shr 指令,看 >> 用在哪種。 11/12 17:29
LPH66:呃 他有用 &0xff 了應該不會有差吧... 11/12 17:57
twotwoone:嗯,只是轉換endian上,以這方法不會有差別 11/12 18:32
twotwoone:signed的sar是會偷偷保留符號位元的值,不影響轉換。 11/12 18:33
arluba:謝謝各位的幫忙~ 11/13 10:44