Konvertovať frakčnej číslo hardvér

S

stevepre

Guest
Existuje nejaký nástroj, alebo niekto má skript alebo program, ktorý môže rýchlo zmeniť frakčnej číslo na hardware reprezentácie?

Napríklad: (jednoduchý, že ľudia môžu väčšinou počítať, že by inšpekcia)
0,5 = 0,1
0,25 = 0,01
-0,5 = 1,1
-0,25 = 1,11
-0.0001234 = ?????

A to sa ešte ďalej komplikuje, ak je interger kombinovanej číslo, rovnako ako 123.456

Existuje nejaký program alebo skript, ktorý to vie?
Vďaka

 
aj pre vaše kritériá: po perl skript vie 16 bit opraviť bod číslo frakčnej zastúpenie:
"-1 <= X <1 prvý bit je podpísaný bit, zvyšných 15 bitov je súčasťou frakcie"

otvoriť SRC, "data";
while (<src>) (
chomp ($_);
$_=$_*( 2 ** 15);
DST printf "% b,", $ _;
)

 
Vďaka Jackson_peng.

Avšak, tam je problém s skriptu, keď sa zaoberajú záporných čísel.Je vždy tlačí v plnom rozsahu 32 znakov ....

Any solution?

 
Pokladňa to len vyzliekol 16 nižších bitov z 32 bitov
Kód:

otvoriť SRC, "data";

while (<src>) (

chomp ($_);

print "n = ".$_."";

$_=$_*( 2 ** 15);

$ T = sprintf ( "% 0.16b", $ _);

@ K = split (//,$ t);

for ($ i = 0; $ i <16; $ i ) (

print $ k [$ i];

)

print "\ n";

)
 
Výsledok:
n = 0,5 0100000000000000
n = 0,25 0010000000000000
n = 0,125 0001000000000000
n = 0,1234 0000111111001011
n = -0,5 1111111111111111
n = -0,25 1111111111111111
n = -0,125 1111111111111111
n = -0,1234 1111111111111111

Stále ... záporné číslo je stále hlavným problémom

 
pre záporné číslo, stačí pridať (2 ** 16) by mohla odstrániť predné 16 bit 1s

 

Welcome to EDABoard.com

Sponsor

Back
Top