C++ Turbo (Omregner)

Tags:    c++ javascript

Oregning fra Hexadecimal til Binær

Ville være meget glad hvis nogen kunne komme med et eksempel på dette!!!

:hot: I Am The Cyborg :hot:



8 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
//hex i s (string), r bliver resultat som streng (binær?)
//s skal være valid (=min 1 tegn og alle hexadecimale, samt ikke størrer end 7fffffff)
//det er ikke c++ men du kan vel selv konvertere. ord('0') = ascii kode (=48).

var x,i: integer; c: char; lr: long int; r: string;
lr:=0; //resultat binært
for i:=1 to length(s) begin //er det ikke: for(int i=1;;++i<len(s)) {
....c:=upperCase(s);
....if c>'9' then x:=ord(c)-ord('A')+10 else x:=ord(c)-ord('0');
....lr:=lr*16+x; //forfra behandlig af hex-tegn, evt lr<<4, skift 4 istedet for *16
end; //next i, næste tegn
//nu indeholder lr resultatet i internt binært format
r:=''; //nulstil resultat streng;
repeat //start loop
....if (lr && 1)<>0 then r:='1'+r else r:='0'+r; //bageste ciffer 0/1 isoleres og testes
....lr:=lr div 2; //hetals div fjerner laveste ciffer, evt (lr>>1)
until lr=0; // ingen foranstillede nuller ønskes
//nu indeholder strengen r, tallet fra s(i hex) resultatet i binær repræsentation.
//håber du kunne bruge det her til noget


[Redigeret d. 13/08-02 12:37:35 af Martin Klausen Andersen]




//hex i s (string), r bliver resultat som streng (binær?)
//s skal være valid (=min 1 tegn og alle hexadecimale, samt ikke størrer end 7fffffff)
//det er ikke c++ men du kan vel selv konvertere. ord('0') = ascii kode (=48).

var x,i: integer; c: char; lr: long int; r: string;
lr:=0; //resultat binært
for i:=1 to length(s) begin //er det ikke: for(int i=1;;++i<len(s)) {
....c:=upperCase(s);
....if c>'9' then x:=ord(c)-ord('A')+10 else x:=ord(c)-ord('0');
....lr:=lr*16+x; //forfra behandlig af hex-tegn, evt lr<<4, skift 4 istedet for *16
end; //next i, næste tegn
//nu indeholder lr resultatet i internt binært format
r:=''; //nulstil resultat streng;
repeat //start loop
....if (lr && 1)<>0 then r:='1'+r else r:='0'+r; //bageste ciffer 0/1 isoleres og testes
....lr:=lr div 2; //hetals div fjerner laveste ciffer, evt (lr>>1)
until lr=0; // ingen foranstillede nuller ønskes
//nu indeholder strengen r, tallet fra s(i hex) resultatet i binær repræsentation.
//håber du kunne bruge det her til noget


[Redigeret d. 13/08-02 12:37:35 af Martin Klausen Andersen]


Hvad i hæ!?$%£*#¤% er det for et sprog???

Virker desværre ikke, men tak alligevel

Har andre et forslag???

:hot: I Am The Cyborg :hot:




Ja det er jo noget pseudo noget!!! Men mest er det vist pascal.
Og hvad nøjagtigt er det der ikke virker? Er det ikke bare én af de ting du spurgte om? Fra hex til bin. Du skriver jo ikke om det skal være bin i en var (iable?) eller i en streng som "1" og "0".
Og C har altså både variable ("int x;" => "x: integer;") og endda strenge som kan betragtes som arrays af chars!
Prøv at analyser hvad der egentlig står i min kode, så vil du nok se at du let kan lave C(++) ud af det. Og om det hedder len(s) eller length(s) eller hvad det hedder stopper dig vel ikke.[Redigeret d. 06/09-02 13:50:40 af Martin Klausen Andersen][Redigeret d. 06/09-02 15:00:08 af Martin Klausen Andersen]



Oregning fra Hexadecimal til Binær

Ville være meget glad hvis nogen kunne komme med et eksempel på dette!!!

:hot: I Am The Cyborg :hot:


Omregning?

Eks: 1 byte, 8 bit:

Hex værdi 8 4 2 1 8 4 2 1
Binær 0 1 0 0 0 1 1 0 -> Binær til hex = 0x46

Summere hex værdi, for hver binær 1 værdi.

Med venlig hilsen
Thomas Vanting




hexadecimale position og værdien der hører til:

som cifrene 4:3:2:1 (fx 10a9)

1:1'ere = 1 (16**0)
2:16'ere = 16 (16**1)
3:256'ere = 256 (16**2)
4:4096'ere = (16**3)

4*4096+0*256+10(a)*16+9*1 = decimal værdi

2'tals systemet:

som cifrene 4:3:2:1 (fx 1011)

1: 1'ere = 1 (2**0)
2: 2'ere = 2 (2**1)
3: 4'ere = 4 (2**2)
4: 8'ere = 8 (2**3)

1*8+0*4+1*2+1*1 = decimal værdi

decimal tal system:

fx 4537,3

-1: 10**-1 (virker osse i andre basetals systemer)
1:10**0
2:10**1
3:10**2
4:10**3

4*1000+5*100+3*10+7+3*0,1 = decimal værdi

Og drop bare pointene.



Prøv printf den kan regne imellem for skellige formatter. Det er noget med 0x eller %x kan ikke lige huske det.

Blot et hint



Oregning fra Hexadecimal til Binær

Ville være meget glad hvis nogen kunne komme med et eksempel på dette!!!

I Am The Cyborg


Jeg hjælper bare mig selv når ingen andre gider :(
I Am The Cyborg



Oregning fra Hexadecimal til Binær

Ville være meget glad hvis nogen kunne komme med et eksempel på dette!!!

I Am The Cyborg


Jeg hjælper bare mig selv når ingen andre gider :(
I Am The Cyborg



t