nomore Skrevet 22. august 2010 Del Skrevet 22. august 2010 Hei, Eg holder på med en kode(i processing) som konverterer et tall til binært kodet desimaltall. Dvs at om eg har verdien 129,5 så får eg resultatet 00010010 10010101 i to byte(hvert siffer får 4 bit). Verdiene eg skal konvertere kan gå i fra -99.9 til 999.9. Men hvordan lagrer eg infoen om at det er et minustall? Siden eg kun har fire bit tilgjengelig pr tall og hver av disse brukes til å forme et tall fra 0-9 så ble eg litt usikker. Å bruke 4 bit av en byte til er uaktuelt pga buffer størrelser og overføringskapasitet. Det eg da lurte på var å for eks å bruke de fire siste bitene i byte 1(helt til venstre) og sette disse til for eks 1010(=10, og 10 er ikke et tall som skal være representert av fire bit). Dette bør gå, men er dette en grei måte å gjøre det på? Hvordan gjøres dette ellers rundtom? Lenke til kommentar
NevroMance Skrevet 22. august 2010 Del Skrevet 22. august 2010 Den vanlige måten å gjøre det på er å sette første bittet til 0 eller 1, altså en bit som kun sier om det er positivt eller negativt tall. Lenke til kommentar
nomore Skrevet 22. august 2010 Forfatter Del Skrevet 22. august 2010 Tenkte meg noe slikt. Ulempen er at eg da ikke kan bruke de fire første bits til et tall. Lenke til kommentar
NevroMance Skrevet 22. august 2010 Del Skrevet 22. august 2010 Det vil jo komme ann på rangen din. Det positive er jo at 123 og -123 har så og si samme binære representasjon. Lenke til kommentar
nomore Skrevet 22. august 2010 Forfatter Del Skrevet 22. august 2010 I utgangspunktet så hadde eg planer om å sette grensen ved 999.9. Og for å representere 9 så trenger eg jo den siste og første biten(i en halv byte). Da vil eg ikke kunne bruke den første biten til å indikere minus eller positivt. Men eg ser eg kan fint begrense maks verdi på det første tallet til 7, så da løser det problemet Lenke til kommentar
asicman Skrevet 23. august 2010 Del Skrevet 23. august 2010 Den vanlige måten å gjøre det på er å sette første bittet til 0 eller 1, altså en bit som kun sier om det er positivt eller negativt tall. Ulempen med det er man får to representasjoner for 0. Men det er ikke sikkert det er noe problem i din applikasjon. Nå vet jeg ikke hva du forsøker å gjøre, men det virker som du har lite plass/båndbredde, hvorfor ikke bruke vanlig to-komplement binær representasjon? Du kan representere 999,9 som 9999 og bare ha med komma i input og output. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå