Rechnen in verschiedenen Zahlensystemen in AVR Studio

Gast #2698527
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
#2698540
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.
#2698561
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.
Gast #2698579
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?!
Gast #2698608
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.