# Schiebebefehl in C



## gingele (6 November 2008)

Hallo,

muß fürs Studium C-Programmieren lernen, jetzt sitzt ich vor er Aufgabe und möchte gerne Wissen ob es einen Befehl Schiebebefehl wie in AWL: SLW, SRW für C gibt.

gruß gingele


----------



## vierlagig (6 November 2008)

```
*

   x = y << 2;    //um 2 stellen bitweise nach links
   z = t >> 4;    //um 4 stellen bitweise nach rechts
```


----------



## gingele (6 November 2008)

hab ich Vergessen, es handelt sich um einen Array

array[16], in dem ich was ins niederste Bit laden will und dann alles in das höchste Schieben will.


----------



## gingele (6 November 2008)

Danke 4L, aber noch eine Frage dazu, rotiert das dann oder Schreibt der in den leeren Bereich Nullen rein.


----------



## vierlagig (6 November 2008)

gingele schrieb:


> hab ich Vergessen, es handelt sich um einen Array




```
*
for (i = size - 1; i > at; i--)
    [B]array[/B][i] = [B]array[/B][i - 1];

[B]array[/B][at] = val;
```


----------



## Cerberus (6 November 2008)

gingele schrieb:


> Danke 4L, aber noch eine Frage dazu, rotiert das dann oder Schreibt der in den leeren Bereich Nullen rein.


 
Bei << oder >> werden die leeren Stellen mit Nullen aufgefüllt!


----------



## marlob (6 November 2008)

Aus einem C-Handbuch


> << >> binär, Shift nach links bzw. Shift nach rechts.
> Verschiebt das Bitmuster des linken Operanden um soviel Stellen nach links bzw. rechts,
> wie der rechte Operand angibt. Es wird gewöhnlich mit Nullen aufgefüllt.
> *Ausnahme:*
> ...


----------

