12/08/02 20:45:06.93
[2] 問題文(含コード&リンク):
char 配列のバイナリから、int 型へ変換しなさい。
------------------------------ >8 ------------------------------
char str[2] = { 0x00, 0x06 };
// => int result = 6
char str[2] = { 0x04, 0xD2 };
// => int result = 1234
------------------------------ >8 ------------------------------
[3] 環境
[3.1] OS: Linux / Windows
[3.2] コンパイラ名とバージョン: gcc (4.x) / Microsoft Visual Studio
[3.3] 言語: C (or C++)
[4] 期限:無期限
[5] その他の制限: Linux / Windows ... 処理系依存なしでお願いします。
--
ビット演算を駆使して実装することはできましたが
よりスマートな解法があるんじゃないかと思い質問しました。
たとえば
str[2] = { 0x06, 0x00 };
であれば
int result = *(unsigned short *)str;
で、求めることができます。(リトルエンディアン環境のみ)
このような感じで、スマートでかつ処理系に依存しない方法はありますか?
よろしくお願いします。