---
title: "<< & >>"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/41528"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Alpha II"
published: "2002-04-13T18:56:48.000Z"
updated: "2002-04-14T13:31:20.000Z"
replies: 12
views: 477
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/41528"
---

# << & >>

## #1 — Alpha II, 2002-04-13T18:56Z

Vad betyder \<\< och \>\>?

```
    mask = 2 << (x & 0x7);
    col = x >> 3;
```

Permalänk: https://www.webforum.nu/p/41528

## #2 — Swey, 2002-04-13T19:06Z

\<\< skiftar åt vänster och \>\> åt höger.
Skiftning innebär att man flyttar alla bitar i ett tal åt höger eller vänster. En skiftning åt vänster en gång innebär att talet dubbleras. En skiftning åt höger en gång innebär att talet halveras.

tal \<\< 1 får samma resultat som tal \* 2.
tal \>\> 3 får samma resultat som tal / 8.

Förstår du? :)

Permalänk: https://www.webforum.nu/p/645554

## #3 — Alpha II, 2002-04-13T19:50Z

varför blir tal \>\> 3 lika som tal \\ 8?

Permalänk: https://www.webforum.nu/p/645571

## #4 — Alpha II, 2002-04-13T19:57Z

Vad blir tal \>\> 4 lika som då? /10?  :o

Permalänk: https://www.webforum.nu/p/645572

## #5 — Swey, 2002-04-13T21:53Z

> *Ursprungligen av Alpha II*  **Vad blir tal \>\> 4 lika som då? /10?  :o**

Nej, 16.

\>\>1 = / 2
\>\>2 = / 4
\>\>3 = / 8
\>\>4 = / 16

Vad som händer är att bitarna förflyttar sig.

Exempel:
11100011
\>\> 1
01110001 (1 faller bort)

Här förflyttar sig alla bitar i byten åt höger en gång. Biten längst åt höger faller bort.

En skiftning åt vänster ser istället ut så här.
11100011
\<\< 1
11000110

Nu faller biten längst till vänster bort. En nollbit kommer in från höger och fyller tomrummet.

Permalänk: https://www.webforum.nu/p/645601

## #6 — PeW, 2002-04-13T21:57Z

Alpha II -\>

how come?
Basen 2 kanske? ;)

**48 \>\>4:**  

```
110000 = 1*2^5+1*2^4+0*2^3+0*2^2+0*2^1+0*2^0 = 48
011000 = 0*2^5+1*2^4+1*2^3+0*2^2+0*2^1+0*2^0 = 24
001100 = 0*2^5+0*2^4+1*2^3+1*2^2+0*2^1+0*2^0 = 12
000110 = 0*2^5+0*2^4+0*2^3+1*2^2+1*2^1+0*2^0 = 6
000011 = 0*2^5+0*2^4+0*2^3+0*2^2+1*2^1+1*2^0 = 3
```

Permalänk: https://www.webforum.nu/p/645603

## #7 — Beatbox, 2002-04-14T07:48Z

Hur funkar det på en CPU som har Intel-arkitektur då den har omvänd byteordning jämfört med t ex Motorola ? Är detta nått som kompilatorn kommer att ta hänsyn till och "fixa till det bakom kulisserna" ?

Permalänk: https://www.webforum.nu/p/645679

## #8 — PeW, 2002-04-14T09:46Z

Intressant fråga.    :)

Är det en strikt bitmanipulation mot maskinkod, eller är det bitmanipulation på en högre (kompilator)nivå  :q

Det händer ju att man måste konvertera det ena formatet till det andra m.m..  och då brukar man använda bitoperatorn ihop med en buffert för konverteringen.

Permalänk: https://www.webforum.nu/p/645706

## #9 — Phorpher, 2002-04-14T09:54Z

Ja, det "fixar till sig".. :h

<http://www.visualcoders.com/software/guides/bitwise-redfiter.shtml>

Permalänk: https://www.webforum.nu/p/645712

## #10 — PeW, 2002-04-14T10:23Z

Fixar till sig?  

> It must be noted, however, that neither system is better than the other in this respect, but it is **very important to be aware of the byte order of the system you are working with, especially when you are doing bitwise operations**

Mao bör man vara medveten om vad systemet har för byteordning när man ska utföra en bitoperation    :bire

Permalänk: https://www.webforum.nu/p/645718

## #11 — Phorpher, 2002-04-14T12:15Z

Du har givetvis rätt PeW!

Läste inte tillräckligt noggrant... :r 

Fast jag hittade en länk iaf... :e

Permalänk: https://www.webforum.nu/p/645771

## #12 — PeW, 2002-04-14T13:23Z

> Du har givetvis rätt PeW!

  
Weeeeee!  :birp

   ;)

Permalänk: https://www.webforum.nu/p/645795

## #13 — Beatbox, 2002-04-14T13:31Z

Slutsatsen är alltså att man ska vara lite försiktig med \>\> och \<\< om man inte vet vilket CPU koden kommer att snurra på. :-)

Permalänk: https://www.webforum.nu/p/645800

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/41528
