※ 引述《arluba (...)》之銘言:
: 我想請問一個 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,那轉換上會有什麼不一樣嗎?
: 感謝各位前輩的熱心回答~
以 C99 的角度來看,如果是 signed short,有可能發生未定義行為。
看 operands 的值來決定,是 right shift 或 left shift 也會
有影響。
詳見 C99 - 6.5.7 Bitwise shift operators
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 174.48.126.243