grzesiekf Opublikowano 17 Września 2004 Zgłoś Opublikowano 17 Września 2004 Witam, ucze sie właśnie podstaw cpp i doszedlem do takiej rzeczy jak operatory bitowe i przesunięcie w prawo i lewo. Mam pytanie do czego się tych przesunięć używa i co one dają ?? tylko nie mówić że do wypisywania na ekran i wpisywania z klawiatury bo nie o to mi chodzi. pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 18 Września 2004 Zgłoś Opublikowano 18 Września 2004 Używa się m.in wtedy gdy potrzeba podzielić, pomnożyć liczbe przez potęge 2 a zależy nam na szybkości. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
grzesiekf Opublikowano 18 Września 2004 Zgłoś Opublikowano 18 Września 2004 aha :? a mógłbyś napisać kawałek kodu ? (tak żeby to zobaczył i sprawdził u siebie jak działa) :?: :D :?: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 18 Września 2004 Zgłoś Opublikowano 18 Września 2004 Żeby zobaczyć jak to działa wystarczy taki malutki kod #include <iostream>using namespace std;int main(){ unsigned int a=5; cout<<(a<<3); /*pomnożenie 5 przez 8 i wypisanie wyniku. Ta trójka wzieła się stąd że 2 do potęgi 3 to 8*/ return 0;}Zapewne jeszcze jak chodziłeś do podstawówki uczono was że żeby pomnożyć liczbe przez wielokrotności 10 wystarczy przesunąć przecinek o odpowiednią ilość cyfr w prawo. Tu jedyną różnicą jest to że komputer operuje w systemie binarnym przez co przesunięcie bitów powoduje pomnozenie,podzielenie przez wielokrotność dwójki. Ta sztuczka działa jedynie na liczbach całkowitych(int, short, long) tak więc dzielenie będzie powodowało odcięcie części ułamkowej. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 27 Września 2004 Zgłoś Opublikowano 27 Września 2004 a dokładniej zapis a<<2 wziął sie z assemblera i poeracji przesuniecia bitowego... jesli rozpiszes sobie liczba powiedzmy 6 bitowo... (8bit) a=00000110B i pzresuniesz o 2 bity w lewo (a<<2) to otrzymasz coś takiego a=00011000 czyli 6*2^2=24. Jak zaznaczył Megabyte chodzi tu o szybkie mnozenie lub dzielenie. Na ogół jednak operacje bitowe wystepują tylko w krytycznych sekcjach programu... i oczywscie na laboratoriach w informatyki 1 na studiach.. zeby zagmawtwać sprawe.. i dać studentowi do myslenia :lol: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...