アプリ版:「スタンプのみでお礼する」機能のリリースについて

0.5 (10進数)
0 01111110 00000000000000000000000(2進数)
3F000000h(16進数)

1.0
0 01111111 00000000000000000000000
3F800000h

1.25
0 01111111 01000000000000000000000
3FA00000h


2進数から16進数の変換がわかりません。
私の手元にある参考書では
(1)2進数表示の数を小数点を基準に四桁ずつにわける。
(2)それらに8,4,2,1を掛けて足す。
(3)それらを並べると16進数表示

というプロセスどおりに行っているのですが答えがでません。
ご教示お願い致します。

A 回答 (2件)

「答えが出ません」とありますが、どの部分で詰まっているのでしょうか?


あるいは、答えは出たけど違う値になった、という意味合いでしょうか。

(1)2進数表示の数を小数点を基準に四桁ずつにわける。
(2)それらに8,4,2,1を掛けて足す。
(3)それらを並べると16進数表示

を、1.25を例に順にやってみましょう。

0 01111111 01000000000000000000000
1) 小数点を基準に4桁区切りにします。この場合小数点は一番右に来ているので無視すると
0011 1111 1010 0000 0000 0000 0000 0000
になります。

2) 面倒くさいので変換表を使うと
3 F A 0 0 0 0 0
になります。0011を3に、1111をFに、それぞれ変換します。
0000 → 0
0001 → 1
0010 → 2
0011 → 3
0100 → 4
0101 → 5
0110 → 6
0111 → 7
1000 → 8
1001 → 9
1010 → A
1011 → B
1100 → C
1101 → D
1110 → E
1111 → F

3) くっつけます。
3FA00000

4) 私の場合、これだと何進数かよくわからないので、先頭に0xをつけるか、最後にhをつけるかして「これは16進数のデータですよ」と喋って貰うようにします。
3FA00000h
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変よくわかりました。
少数点が基準というところで
0 01111111 . 01000000000000000000000
ここに点が来ると考えており
0 0111 1111 0100 0000 0000... 
間違った分割の仕方をしておりました。

「この場合は小数点は一番右にくる。」
ありがとうございました。

お礼日時:2013/07/03 16:16

> というプロセスどおりに行っているのですが答えがでません。



その「プロセス」通りに行っている様子を書き出してみてください。
話はそれからでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!