1 >> 2...2 >> 3...3 >> 2....4|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
1 >> 2...2 >> 3...3 >> 2....4
Tjoppen
Kommer du hit ofta?
Medlem
Forum Posts: 872
Member Since:
August 29, 2001
sp_UserOfflineSmall Offline
1
October 11, 2001 - 2:19 pm
sp_Permalink sp_Print

Vad menas?

1 >> 1 = 1
1 >> 2 = 2
1 >> 3 = 4
1 >> 4 = 8
o.s.v
Men vad menas med övriga >>??? Och <

_paul_
Mina inlägg skrivs i binär kod
Medlem
Forum Posts: 126
Member Since:
August 2, 2001
sp_UserOfflineSmall Offline
79464
October 11, 2001 - 3:39 pm
sp_Permalink sp_Print

om det är c så utförs högerskift (aritmetisk eller logisk) på den vänstra operanden med det antal bitar som den högra operanden anger.
dvs
x = 8 >> 1
skulle resultera i att x blev 4.
Högerskift kan ses som division med en 2^y och vänsterskift kan ses som multiplikation med 2^y där y anger antal bitpositioner som skiftas.

Jag är inte säker på vad standarden säger om det vid högerskift används aritmetisk eller logisk skift skillnaden:
aritmetisk fyller på med teckenbiten på most signifcant bit
logisk fyller på med 0 på most signifcant bit

Anledningen till att använda skiftoperationer är att de är mycket snabba.

sharpshooter
Mina inlägg skrivs i binär kod
Medlem
Forum Posts: 144
Member Since:
August 14, 2001
sp_UserOfflineSmall Offline
79486
October 11, 2001 - 4:26 pm
sp_Permalink sp_Print

Så här ser det ut (jag antar att du är bekant med binär representation):

8 representeras som 1000.
8 >> 1 innebär att man "flyttar" ettan ett steg åt höger, dvs 1000 blir 0100 vilket betyder 4.

[ Detta Inlägg ändrades av: sharpshooter den 2001-10-11 18:26 ]

Tjoppen
Kommer du hit ofta?
Medlem
Forum Posts: 872
Member Since:
August 29, 2001
sp_UserOfflineSmall Offline
79507
October 11, 2001 - 6:17 pm
sp_Permalink sp_Print

Jo, jag vet vad binärt är...Men jag tycker bara att 3 >> 2 borde vara typ 3^2...Men det är det inte...
Ngn dom vet hur man gör 3^2 utan pow(3,2)

_paul_
Mina inlägg skrivs i binär kod
Medlem
Forum Posts: 126
Member Since:
August 2, 2001
sp_UserOfflineSmall Offline
79565
October 11, 2001 - 7:18 pm
sp_Permalink sp_Print

On 2001-10-11 20:17, Tjoppen wrote:
Jo, jag vet vad binärt är...Men jag tycker bara att 3 >> 2 borde vara typ 3^2...Men det är det inte...
Ngn dom vet hur man gör 3^2 utan pow(3,2)

borde du inte köra 3 << 2 en vänsterskift istället för högerskift, har inte sysslat så mycket med skiftoperationer i högnivå språk utan mest assemblynivå. EDIT
Tänkte fel detta blir ju 3*2^2

[ Detta Inlägg ändrades av: paul_v den 2001-10-11 21:21 ]

Tjoppen
Kommer du hit ofta?
Medlem
Forum Posts: 872
Member Since:
August 29, 2001
sp_UserOfflineSmall Offline
79580
October 11, 2001 - 7:37 pm
sp_Permalink sp_Print

Nu tror jag att jag fattar:

x >> y
=
x * 2 ^ y
lr?

Men vad blir då

x << y
?

_paul_
Mina inlägg skrivs i binär kod
Medlem
Forum Posts: 126
Member Since:
August 2, 2001
sp_UserOfflineSmall Offline
79897
October 12, 2001 - 8:24 am
sp_Permalink sp_Print

On 2001-10-11 21:37, Tjoppen wrote:
Nu tror jag att jag fattar:

x >> y
=
x * 2 ^ y
lr?

Men vad blir då
x << y
?

Det ät ju inte så svårt att testa själv.

#include
int main(void) {
printf("%d %d %d %d %dn", 1, 1<<1, 1<<2, 1<<3, 1<<4);
printf("%d %d %d %d %dn", 8, 8>>1, 8>>2, 8>>3, 8>>4);
return 0;
}

Ger följande när det körs.
datan~>./test
1 2 4 8 16
8 4 2 1 10
datan~>

Således så är z = x << y ekvialent med z = x*2^y
och z = x >> y ekvialent med z = x/2^y
OBS! detta gäller endast om kompilatorn vid högerskift är implementerat som aritmetisk skift och inte logisk skift, då man skulle få ett tal med ett helt annat tecken och värde mot väntat.
Jag tror dock attt i princip alla kompilatorer använder aritmetisk skift.

Gör en sökning på två komplements representation för ytterligare info för hur datorn representerar heltal med tecken(+-).

Tjoppen
Kommer du hit ofta?
Medlem
Forum Posts: 872
Member Since:
August 29, 2001
sp_UserOfflineSmall Offline
80021
October 12, 2001 - 11:49 am
sp_Permalink sp_Print

Happ...Ber att får tacka så mycket för denna info...Tack så mycket 😀

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 1030
Currently Online:
Guest(s) 445
Currently Browsing this Page:
2 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL