Forum: Mikrocontroller und Digitale Elektronik Rechnen in verschiedenen Zahlensystemen in AVR Studio


von Felix (Gast)


Lesenswert?

hey, ich habe mal eine Frage zum rechnen in verschiedenen Zahlensystemen 
in AVR Studio. Kann ich direkt in verschiedenen Zahlensystemen rechnen.
Also ein Byte als unsigned char mit einer integer Zahl vergleichen, 
addieren etc.
Bzw. sagen das das Byte nun eine integer zahl sein soll.
zb.

unsigned char a=0b00000000;
int b=0,

b=a;

Danke schonmal

von Mike R. (thesealion)


Lesenswert?

Solange der Compiler das Format deiner Zahl richtig erkennt ist das 
alles kein Problem.

Integer hat nichts mit binär oder hex zu tun.

Und ein Byte der nun eine Integer Zahl sein soll, empfehle ich dir ein C 
Buch
und dort das Kapitel typecast.

von Karl H. (kbuchegg)


Lesenswert?

Felix schrieb:
> hey, ich habe mal eine Frage zum rechnen in verschiedenen Zahlensystemen
> in AVR Studio. Kann ich direkt in verschiedenen Zahlensystemen rechnen.

Diese 'Zahlensysteme' sind nur unterschiedliche Schreibweisen für immer 
dasselbe: eine Zahl.

Alles wird in einem Computer in Form eines Bitmusters gespeichert, die 
als Zahlen in unterschiedlichen Zahlensystemen visualisiert werden 
können.

D.h.
unsigned char c;

  c = 0b00110001;
  c = 0x31;
  c = 49;
  c = 061;
  c = '1';

das bewirkt alles dasselbe. In das Byte mit Namen c wird das Bitmuster 
0011001 geladen. Du hast nur unterschiedliche Schreibweisen für dieses 
Bitmuster benutzt, je nachdem welche Schreibweise in welcher Situation 
am klarsten ist. Wenn es darum geht auszudrücken, wie die 
Bitkonfiguration tatsächlich ist, ist Binär- oder Hex-Schreibweise (oder 
Oktal - wird aber heutzutage eher selten benutzt) meistens das klarste. 
Wenn es darum geht auszudrücken, dass es sich um den ASCII Code eines 
Zeichens handelt, welches von einem Anzeigegerät als der Buchstabe 1 
angezeigt wird, ist '1' am klarsten. Wenn es in der Programmsituation 
darum geht, dass 49 Äpfel in einer Kiste liegen, ist die dezimale 
Schreibweise am klarsten.

von Felix (Gast)


Lesenswert?

Ok, also genau genommen geht es mir darum aus einer integer zahl zu 
prüfen ob bit 0, 1, 2, 3, 4 usw gesetzt sind. Dies ist also möglich da 
alle zahlen als Bitmuster vorliegen?!

von Karl H. (kbuchegg)


Lesenswert?

Felix schrieb:
> Ok, also genau genommen geht es mir darum aus einer integer zahl zu
> prüfen ob bit 0, 1, 2, 3, 4 usw gesetzt sind. Dies ist also möglich da
> alle zahlen als Bitmuster vorliegen?!

Natürlich.
Bitmanipulation

von Uwe (Gast)


Lesenswert?

Du kannst auch zwei Buchstaben miteinander addieren, multiplizieren oder 
voneinander subtrahieren.
z.B.
char a='u';
char c;

c=a-'A';

cout << c;
char d=c*2;

Dann würde c also char '4' sein und d='h' oder auch 104 Dezimal oder 68 
Hexadezimal oder 1101000 Binär.


Dem Assembler bzw. der CPU selber ist egal was du machst. Du mußt wissen 
was du machst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.