2017-02-24 22 views

答えて

0

小数点の左にある数字は、ベースの立上りの累乗で、右の数字は累乗を減らすものです。

ので124.71がある:バイナリで

10^2 10^1 10^0 10^-1 10^-2 
100 + 20 + 4 + 7/10 + 1/100 

、それは上昇力が1, 2, 4, 8, ...いうより1, 10, 100, 1000, ...ある以外、同じです。

還元力は1/10, 1/100, 1/1000, ...ではなく1/2, 1/4, 1/8, ...です。

ので-0.5は、それだけで1/2の場所で構成されているので簡単なものであるバイナリに:

-0.1: - means it will be negative. 
     0 x 2^0(1) =  0 
     1 x 2^-1(1/2) = 0.5 
         ---- 
         -0.5 

より複雑な数字は、個々の場所を加算することにより構築されています。例えば、小数65.625は次のとおりです。

1 x 2^6  = 64 
0 x 2^5 
0 x 2^4 
0 x 2^3 
0 x 2^2 
0 x 2^1 
1 x 2^0(1) = 1 
. 
1 x 2^-1  = 0.5 
0 x 2^-2 
1 x 2^-3  = 0.125 
^    ------ 
|    65.625 
| 
+-> 1000001.101 
+0

ですが、私はバイナリで完全に-.5を表現する方法が不思議でしたが、あなたの数字に負の符号があります。私たちが学校でどのように教えられたかは、数値が負の場合は整数を負にすることです。しかし問題は、整数が0の場合はどのようにして整数を負にすることができるのかということです。 –

+0

@ AbdelrahmanM.MoheyEl-din、記号をどのようにエンコードするかによって決まります。通常(IEEE754エンコーディングの場合など)、ビットの1つを符号を表すために使用します。それがゼロの場合は正とみなされ、一方が負の場合は正の値とみなされます。これは、いくつかの数学的な人々がコンピュータ科学者が数学で信用すべきではないと証明していることを証明していると主張する* 2つのゼロ、正と負の1つの存在につながる:-)詳細はhttp:// stackoverflowで見つけることができる。 com/questions/3448777/how-to-represent-0-1-in-floating-point-arithmetic-and-decimal/3448855#3448855 – paxdiablo

1

まず、正として負の数を考慮することができます。小数部と小数部を別々に見つけたら、すべてを1から0、0から1にすることで、それを負に変換することができます。最後に、1を追加する必要があります。

たとえば、-5.75を最初にバイナリに変換するには、ポイントの位置と2進数の長さを決定する必要があります。数値の長さを8ビット、小数点以下4ビット、小数点以下4ビットと定義しましょう。

まず(ポジティブ)5.75のバイナリ表現を見つける:

5=0101 
0.75=.1100 then 
5.75=0101.1100 in 8 bits 

、負、手順が標準で変換すべてのビットを反転し、前記仮数の桁に1を追加します。私たちのrepsresentationが正しいかどう

number:  0101.1100 
inversion:  1010.0011 
addition of 1: 1010.0011 + 0.0001=1010.0100 

のは確認してみましょう:

bin(1010.0100) = -8 + 2 + 0.25 = -5.75 

ザッツさんすべて。

関連する問題