000
01.10.2006, 19:36 Uhr
Pablo
Supertux (Operator)
|
Hi
ich beschäftige mich mit dem CAN Protokoll, welches mit Little Endian arbeitet.
Ich hab mich dann ein wenig mit Little und Big Endian beschäftigen, um die Unterschiede besser zu verstehen, doch beim Shifften bin ich mir nicht mehr so sicher.
Angenommen habe ich sowas wie
Auf Big Endian würde x so abgelegt
Code: |
n n+1 n+2 n+3 ... n+7 | ... | ... n+30 n+31 de | ad | be | ef
|
dann werden die Bits nach links um eine Position verschoeben und mit einer führende 0 gefüllt, also im Prinzip int y = x * 2; (wenn x positiv)
Was passiert mit Little Endian? Wie wird das Shiften ausgeführt?
Code: |
n n+1 n+2 n+3 ... n+7 | ... | ... n+30 n+31 ef | be | ad | de
|
Was macht der Prozessor in diesem Fall? 'ef' nach links und das höchste Bit in das geshifte 'be', usw?
Oder hat das Byte Order an sich wirklich nichts mit Shiften zu tun? -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |