浮動小数点表現の問題で以下の実行結果を元にfloat型変数 f に与えた実数の実際に格納されているビット列を表示するプログラムを作りたいのですが、
#include<stdio.h>
main()
{
float a;
scanf("%f",&a);
printf("%f",a);
}
この程度までしか作れません。ポインタを使ってアドレスを表示することは分るのですが…。
どなたか教えていただけると助かります。
実行結果
Size of Float : 4 byte
Size of Int : 4 byte
f=0.500000000000000
00111111000000000000000000000000
No.4
- 回答日時:
環境が不明である以上 float と unsigned の大きさが等しいという仮定は危険ではないでしょうか>#3. 面倒でも
unsigned char i[sizeof(float)];
とすべきだと思います.
もっといえば limits.h を #include して CHAR_BIT を使うべき.
No.3
- 回答日時:
カテ違い。
#include <stdio.h>
union bits{
float f;
unsigned i;
};
int main(void)
{
union bits f_i;
int i;
scanf("%f", &f_i.f);
printf("%f\n", f_i.f);
for(i = 31; i >= 0; -- i) printf("%d", (f_i.i >> i) & 1);
return 0;
}
No.2
- 回答日時:
なんとかして f の各バイトの値を得る必要がある, ということはいいでしょうか? そのためには
・unsigned char の配列との union
・unsigned char * へのアドレスのキャスト
のどちらかをすることになります. 得られればシフトとかマスクとかすれば OK.
ただし, 処理系によってはその通りの結果が得られない可能性があるのでそこは気を付けてください.
No.1ベストアンサー
- 回答日時:
単精度浮動小数点数のバイナリー表示するには、
float型の変数を符号なし整数として扱う必要があると思います。
型変換するのではなく、そのまま読みかえるわけです。
C言語には、共用体(union) というのがあります。
まず、これを調べてください。
整数として読めれば、上位ビットから順に0、1を
調べて表示すればよいわけです。
このためには、マスクといテクニックとビットシフトが
有効です。
がんばってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイナスからプラスへ転じた時...
-
2÷3などの余りについて
-
信頼区間の1.96や1.65ってどこ...
-
正弦定理と余弦定理で答が違う?
-
エクセルで可視セルにのみ値貼...
-
Aの値からBの値を除するとは??
-
変数とパラメータとは違うもの...
-
楕円の外周の計算方法
-
調和数列の和
-
数学についてです! (1)3√5-2...
-
根号内が負になり、エクセルで...
-
Excelで1つしかない値だけを抽...
-
値差の%計算方法について
-
この極限値
-
「Aに対するBの割合」と「Aに対...
-
EXCELの分散分析表のP-値が....
-
系列推理
-
比と比の値について。 a:b=a/b ...
-
20'(角度)の計算がわかりま...
-
第三離心率、第三扁平率の幾何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マイナスからプラスへ転じた時...
-
2÷3などの余りについて
-
信頼区間の1.96や1.65ってどこ...
-
Excelで1つしかない値だけを抽...
-
変数とパラメータとは違うもの...
-
「Aに対するBの割合」と「Aに対...
-
10C7 =10.9.8.7.6.5.4/7.6.5.4...
-
0 <= ある値Aのある値B乗 <= あ...
-
20'(角度)の計算がわかりま...
-
ある商品のロス率を5%見込み、...
-
中学数学 代表値について
-
Aの値からBの値を除するとは??
-
教えてください。数学Bの二項分...
-
エクセルで可視セルにのみ値貼...
-
a^2の√=a が成り立たない場合
-
比と比の値について。 a:b=a/b ...
-
EXCELの分散分析表のP-値が....
-
値差の%計算方法について
-
10%引いた元の数字を出すには?
-
パーセントの出し方を教えて下さい
おすすめ情報