BIN TO HEX

Gast #235663
Lesenswert?
• ▲
▼
eigentlich gibst Du im Quellcode an:

int k = b10101100;

schon hat k den Wert 172

wenn deine BinZahl als String vorliegt,

dann

int i, value;
int nLen;
char[9] s;
strcpy(s, "10101100");
nLen = strlen(s)
for (i = 0; i < nLen; i++) {
   value += ('1' == s[i]) ? (1 << i) : 0;
}
Gast #235665
Lesenswert?
• ▲
▼
1
#define B8(y)   ( (0##y       &   1) \
2
                | (0##y >>  2 &   2) \
3
                | (0##y >>  4 &   4) \
4
                | (0##y >>  6 &   8) \
5
                | (0##y >>  8 &  16) \
6
                | (0##y >> 10 &  32) \
7
                | (0##y >> 12 &  64) \
8
                | (0##y >> 14 & 128) )
9

10
unsigned char i = B8(10101100);


Peter
Gast #235666
Lesenswert?
• ▲
▼
Ich mit diesen Angaben nichts anfangen.
Ich habe die Binär Wert z.B. 1010 in einem String drin.
Jetzt weiss ichhalt nur nicht wie da der Algorythmus geht damit ich
dies in eine Dez Zahl umwandeln kann.
Gast #235669
Lesenswert?
• ▲
▼
>> eigentlich gibst Du im Quellcode an:
>> int k = b10101100;

> Das ist kein C; diese Notation ist eine seltene inkompatible
> Erweiterung weniger Compilerhersteller.

Selten? Ich habe noch kein Compiler gehabt, der das nicht konnte.
Gast #235674
Lesenswert?
• ▲
▼
@Martin Jangowski

Martin, man kann dieses seltsame Verhalten immer wieder in diesem Forum
sehen. Einer stellt eine Frage, die danach riecht, er haette seine
Hausaufgaben nicht gemacht und moechte nun Hilfe von anderen, dann
kommt einer und watscht ihn dafuer ab. Mal angenommen, der Fragesteller
bemueht sich tatsaechlich und kapierts trotzdem nicht, ist dieses
Verhalten dann wirklich angemessen ?

Wenn einer nicht antworten will, dann soll er es lassen und nicht den
Herrn Oberlehrer spielen, ok ?

just my 0,5 Euro
Gast #235675
Lesenswert?
• ▲
▼
@Alexander

Verstehe ich das richtig ? Dein Eingabewert ist ein normaler (null
termininierter) C-String a la "0101" und das Ergebnis soll wieder ein
C-String sein, der die Dezimalzahl enthaelt (= "5") ? Oder soll die
Funktion doch lieber einen integer (= 5) zurueckgeben ?

   Daz

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.