ze5400 Skrevet 5. september 2006 Del Skrevet 5. september 2006 Jeg trenger å konvertere desimal til binær. Problemet oppstår i at jeg ikke får den til å forstå komma. F.eks 9,5 skal konverteres til binær. Hvordan gjør jeg dette? Lenke til kommentar
j000rn Skrevet 5. september 2006 Del Skrevet 5. september 2006 Jeg trenger å konvertere desimal til binær. Problemet oppstår i at jeg ikke får den til å forstå komma. F.eks 9,5 skal konverteres til binær. Hvordan gjør jeg dette? 6808033[/snapback] 9.5 kan ikke konverteres til binær. Men den kan konverteres til en haug andre forskjellige typer (float, decimal, double,+++,etc) som kan lagres av maskinen binært. http://docs.sun.com/source/806-3568/ncg_goldberg.html Lenke til kommentar
cookiefi Skrevet 5. september 2006 Del Skrevet 5. september 2006 (endret) Jeg ville si meg uenig der. Det er fult mulig og converte 9.5 til Binary Siden hvis man kan kovertere binær stykker med komma til decimal skal det være mulig og gjøre det samme med decimal til binær. Men jeg husker ikke den formelen Si ifra hvis noen kommer på den. Men jeg tok og lagde denne skissen I paint der jeg har tatt 1110,11 binært og gjort det om til decimalt som blir 14,75. Men så lenge er det noen som har en ide om hvordan formelen min kan brukes i .net til og ta binære tall med komma og convertere den om til binært? Vet ikke helt hvordan skal forklare dette men gjør så godt jeg kan:1. Du begynner fra venstre og går mot høyre. 2. Tallet som er først i stykket her er 1 dette skal du gange med grunntallet i tallsystemet som skal være opphøyd med det tall plasen her er det 3 og lsik fortsetter det. Helt til etter 0 her begynner det med - siden det er på andre siden av streken. 3. I dette stykket blir det 1 * 2 -1 og 1*2 -2 dette kan settes opp som 1/2-1 og 1/2 -2 som altså blir 1 halvdet del og 1 fjerde del som blir 0.5 og 0.25 enkelt som bare det binary_decimal.bmp Endret 5. september 2006 av cookiefi Lenke til kommentar
GeirGrusom Skrevet 5. september 2006 Del Skrevet 5. september 2006 Skal det gjøres ordentlig, er det ganske komplisert. IEEE Standard 754 forklarer alt i detalj, eller du kan kikke på Intel sin "IA-32 SDM - Basic Architecture" hvis det er interresant. Eller du kan gjøre slik: byte[] b; float fl = 32.01242f; b = System.BitConverter.GetBytes(fl); string outp = ""; int val; foreach (byte bts in b) { val = 1; for (int x = 0; x < 8; x++, val <<=1) { outp = ((bts & val) == val ? "1" : "0") + outp; } } MessageBox.Show(outp); Lenke til kommentar
PerB Skrevet 6. september 2006 Del Skrevet 6. september 2006 I paint der jeg har tatt 1110,11 binært og gjort det om til decimalt som blir 14,75. 6808791[/snapback] Formen 1110,11 er ikke lengre binær. Binær form er 0101010 og kan ikke innehold komma. (Binær = to-talls-system). Forskjellige programmeringsspråk benytter sine egne regelr for å representere float/real (tall med desimaler), integer (heltall) og negative tall. Hvis tallet skal kunne være negativt vil vesntre bit indikere om tallet er negativt. Antall bit totalt er avhengig av språk og definisjoner. Er tallet definert som byte kan det ikke være negativt, eller float og består av 8 bit. Lenke til kommentar
ze5400 Skrevet 6. september 2006 Forfatter Del Skrevet 6. september 2006 Hadde en følelse av akkurat det... 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å