byte型配列 buf[] に先頭から
00 00 80 3F
という4バイト分の16進数値が入っているとします。
これはfloat型の 1.0 なのですが、これをfloat型変数に入れたいのです。
float f = (bufdata[0] << 24) | (bufdata[1] << 16) | (bufdata[2] << 8) | bufdata[3];
とすればできると思ったのですが、結果は -32705.0 という値になってしまいます。
int型はこの方法でできたのですが・・・
どこが間違っているのでしょうか。
あるいはもっとスマートな手段があるでしょうか。
No.2ベストアンサー
- 回答日時:
その右辺の式で 0.5 という値を求めることが可能かどうか, 冷静に考えてみてください.
ということで, 適切に int に変換してから Float.intBitsToFloat を呼んでください.
回答ありがとうございます。
ちょうど間違いに気づいたところでした・・・
仮に右辺が正しくとも、出てきた整数値がそのままfloatになって(後ろに .0 をつけて)代入されるだけですし、
そもそも並びが逆でしたね・・・
それでも代替手段が分からず困っていましたが、
> Float.intBitsToFloat
とても助かりました、ありがとうございます。
No.1
- 回答日時:
試していませんが、少なくともbyte型から先にint型などにキャストしてシフトする必要があると思います。
byte型は8ビットなので、24ビットシフトすると違う値になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) 物理の斜方投射のシミュレーションにおける位置や速度の単位について 4 2023/05/31 09:50
- C言語・C++・C# C++言語の16進数の表現についておしえてください 1 2022/11/14 17:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
結合した文字列をファイル名に...
-
特定の文字列を複数抜き出した...
-
バイト配列からfloat型の数値を...
-
【Excel VBA】繰り返し処理がで...
-
8桁整数を限りなく短い文字列に...
-
-1.#IND00を検知する方法
-
Javaの問題なのですが、「3文字...
-
C言語のポインターに関する警告
-
パソコンキーボードで時分秒を...
-
プログラミングの問題です。大...
-
IF関数でEmpty値を設定する方法。
-
Java配列でNullPointerExceptio...
-
[JAVA]try 内の変数を外で!?
-
cloneメソッドについて (java)
-
VBAで配列の計算
-
配列で、値の入っている要素数...
-
java.util.Comparatorのcompare...
-
unityでのC++エラーの原因がわ...
-
ジャバスクリプトについて。
-
byte[] を long,float とかに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
特定の文字列を複数抜き出した...
-
javaのCSVデータ読込についてです
-
wsprintf関数の使い方について
-
BCD形式で時刻を!
-
結合した文字列をファイル名に...
-
Evaluate()に文字列の形式の数...
-
C言語の変数(LSB)の合わせ込...
-
実行シェルからCOBOLへパラメー...
-
hiddenの値を消したくない!
-
VB6,論理演算子Orの使い方がわ...
-
DateTimePickerに値を入れたい...
-
char型での演算子
-
String str = "a\\\\b\\\\c";
-
Javaの問題なのですが、「3文字...
-
8桁整数を限りなく短い文字列に...
-
matchesを否定文として使う方法...
-
DOSバッチで変数の値を変数名に...
-
excel vba 時間計算と条件分岐...
おすすめ情報