Archiv verlassen und diese Seite im Standarddesign anzeigen : Wo ist das MSB?
Grüssi!
Sagen wir ich habe ein "unsigned char" wo ist dann das MSB?
Bit 0 oder Bit 7?
Danke vielmal
Das MSB ist "links" bei Little Endian Architekturen, wie z.B. IA32.
Wo ist bei dir Bit 0 bzw. wo ist bei dir Bit 7?
Naja, es geht darum, dass ich HW nahe Programmierung machen muss, wo nur dortsteht, für was BIT1 zuständig ist, für was BIT5 etc....
Jetzt muss ich aber herausfinden, wo in meinem Bitfeld bit 1 und wo bit5 (oder ähnlich) ist.
Das hab ich mal nur zum Testen gemacht:
struct bitbyte
{
unsigned a:1;
unsigned b:1;
unsigned c:1;
unsigned d:1;
unsigned e:1;
unsigned f:1;
unsigned g:1;
unsigned h:1;
};
int main()
{
struct bitbyte d;
unsigned char* c;
d.a=1;
d.b=1;
d.c=1;
d.d=1;
d.e=1;
d.f=1;
d.g=1;
d.h=1;
c= &d;
printf("%d\n", *c);
Ich weiß jetzt zwar, dass "h" das MSB ist, aber ich weiß nicht wo "bit1" ist, wie es in dem Tutorial steht....
Mfg
vorsicht!, ihr mischt hier zwei verschiedene sachen, bits und bytes.
little und big endian gibts nur bei bytes, bei bits ist die reinfolge immer
gleich.
Beispiele.
wenn du bei einer zahl x das y bit überprüfen willst:
(x AND y^2)/y^2 => 0/1
oder ein bit setzten möchtest
x OR y^2
gruss
Arthur
peschmae
06-06-2003, 13:14
heisst das das LE/BE gestürm gibts nur bei Datentypen >1byte?
MfG Peschmä
ja, wenn du zb ein word nimmst, es besteht aus 2 bytes,
aber die reinfolge hi->low bzw. low->hi ist system(maschinen) abhängig.
als beispiel:
12 34 = 12 hi 34 low = (1*16 +2*1) * 256 + 3*16 + 4*1 = 4660
12 34 = 12 low 34 hi = 1*16 +2*1 + (3*16 + 4*1) * 256 = 13330
gleich gespeichert, aber ganz anderer wert
gruss
Arthur
Grüssi!
Hmm, BE und LE gibts auch bei Byte, BE ist ja das Most Significant BIT.
Es ist darum gegangen, welches der Bits das printf als MSB ansieht.
Hat sich aber wie gesagt erledgt, hab einen gedankenfehler gehabt ;-)
Danke vielmals
Original geschrieben von ceisserer
Hmm, BE und LE gibts auch bei Byte, BE ist ja das Most Significant BIT.
Es ist darum gegangen, welches der Bits das printf als MSB ansieht.
sorry, aber das stimmt nicht,
most significant bit ist IMMER das gleiche (höhste bit) deines bytes.
also bei einer n-bit zahl das n-1 bit.
hier ein byte :)
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1
^_________^
msb_____lsb
gruss
Arthur
ich meinte auch nur das hier:
BE und LE gibts auch bei Byte
gruss
Arthur
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.