作者arluba (...)
看板C_and_CPP
標題[問題] 關於big endian轉little endian的問題
時間Thu Nov 12 15:35:28 2009
我想請問一個 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