Ahoj,
snažím se zjistit, zda je v BC chyba ve výpočtu, nebo je chyba mezi klávesnicí a židlí.
Mám číslo v double IEEE 754: např. pi 3.1415926 -> uloženo jako 400921FB4D12D84A
po převodu by mělo být:
exponent: 2^1 (400)
a mantisa 1.5707963000000000 (1+.921FB4D12D84A)
kontrola např.:
http://babbage.cs.qc.edu/IEEE-754/64bit.htmljenže když pomocí bc zkusím převod:
echo 'ibase=F;obase=2;1.921FB4D12D84A' | bc
tak vychází:
1.10011100000001101010100101000011110100010101
mělo by ale správně vycházet:
1.1001001000011111101101001101000100101101100001001010
tedy od 5. bitu špatně! (to je sakra velká nepřesnost)
navíc zpětný převod ukazuje, že to nesedí:
echo 'ibase=F;obase=2;.921FB4D12D84A' | bc
echo 'ibase=2;obase=F;.10011100000001101010100101000011110100010101' | bc
=.921EB4D12D7B780E538108E815B38920E69E42
tedy od EB...
je chyba u mě, že dělám něco blbě, nebo programátoři bc nezvládli převod do zlomkové části?