• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++での24bit符号付き整数値の処理)

C++での24bit符号付き整数値の処理

このQ&Aのポイント
  • C++で24bit符号付き整数値の処理を行う方法をご教示願います。
  • wavファイルから24bitデータを読み出し、倍精度浮動小数点数に変換して再び24bitで書き込む方法についてお知恵を拝借したく存じます。
  • 24bitデータをint型に一度格納して計算を行い、上位3byteを書き込む方法についてアドバイスをいただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

まず、24bit符号付きからintへの変換。 バイトオーダーに注意してint変数に入れて、0x800000 以上であれば負なので、0x1000000 を引きます。 これで符号付きのintになります。 次に、doubleを掛ける演算前に、intの正負の符号を確認しておきます。 doubleを掛けてintに格納したら、0x800000 と&を取って、24bitとしての符号を見ます。 これが、演算前の符号と異なっていたら、オーバーフローが起きた(24bit符号付きで表現できる範囲を超えた)ということなので、目的に応じた適切な処理を行います。

upy038
質問者

お礼

試してみたところ、適切に処理することが出来ました。 ありがとうございました。

関連するQ&A