- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++での24bit符号付き整数値の処理)
C++での24bit符号付き整数値の処理
このQ&Aのポイント
- C++で24bit符号付き整数値の処理を行う方法をご教示願います。
- wavファイルから24bitデータを読み出し、倍精度浮動小数点数に変換して再び24bitで書き込む方法についてお知恵を拝借したく存じます。
- 24bitデータをint型に一度格納して計算を行い、上位3byteを書き込む方法についてアドバイスをいただけませんか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず、24bit符号付きからintへの変換。 バイトオーダーに注意してint変数に入れて、0x800000 以上であれば負なので、0x1000000 を引きます。 これで符号付きのintになります。 次に、doubleを掛ける演算前に、intの正負の符号を確認しておきます。 doubleを掛けてintに格納したら、0x800000 と&を取って、24bitとしての符号を見ます。 これが、演算前の符号と異なっていたら、オーバーフローが起きた(24bit符号付きで表現できる範囲を超えた)ということなので、目的に応じた適切な処理を行います。
お礼
試してみたところ、適切に処理することが出来ました。 ありがとうございました。