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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren