• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesunięcia bitowe - przydatny programik.

Object Storage Arubacloud
+3 głosów
734 wizyt
pytanie zadane 29 czerwca 2015 w C i C++ przez krecik1334 Maniak (58,390 p.)
edycja 29 czerwca 2015 przez krecik1334

Napisałem program, który pozwoli mi i każdemu kto jeszcze tego nie ogarnia, zrozumieć przesunięcia bitowe.

#include <cstdio>
#include <cmath>

void binarne(int x, int y, bool lewo)
{
    int n = int(log2(x))+1;

    if(lewo == true)
        x<<=y;
    else
    {
        if(y >= n)
        {
            puts("Za dużo chciałeś przesunąć! Nie ma tak dobrze!");
            return;
        }
        else
            x>>=y;
    }

    n = int(log2(x))+1;

    bool tab[n];
    int i = n-1;

    while(x > 0 && i >= 0)
    {
        if(x%2==0)
            tab[i] = 0;
        else
            tab[i] = 1;
        x/=2;
        i--;
    }

    for(int i = 0; i < n; i++)
        tab[i] ? printf("1") : printf("0");
    puts("");
}

int main()
{
    int a, b;
    puts("Podaj liczbe w systemie dziesietnym: ");
    scanf("%d", &a);
    puts("Podaj o ile przesunac liczbe: ");
    scanf("%d", &b);

    puts("Oryginalna liczba w systemie dwójkowym: ");
    binarne(a, 0, 0);
    puts("Przesunięta w lewo liczba w systemie dwójkowym: ");
    binarne(a, b, 1);
    puts("Przesunięta w prawo liczba w systemie dwójkowym: ");
    binarne(a, b, 0);
}

Testujcie, subskrybujcie (laugh), kompilujcie, błędy zgłaszać w tym temacie.

3 odpowiedzi

+2 głosów
odpowiedź 29 czerwca 2015 przez nowyfolder Mądrala (7,250 p.)
edycja 29 czerwca 2015 przez nowyfolder

Jeśli chodzi o reprezentację bitową liczb, to zamiast takich ciekawych zabaw polecam std::bitset -  http://en.cppreference.com/w/cpp/utility/bitset

#include <bitset>

int x = ...
//kod
std::cout<<std::bitset<32>(x);

 

komentarz 29 czerwca 2015 przez krecik1334 Maniak (58,390 p.)

No niestety, ja zazwyczaj piszę z poziomu C. Ja już tak mam laugh. Ale dzięki, przyda się gdy coś będę kodził na szybko. Po co redundantywny kod.

0 głosów
odpowiedź 29 czerwca 2015 przez Grzesiek Eleryk Mądrala (6,820 p.)
Ciężko początkującemu patrzeć na kod bez komentarzy.
komentarz 30 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
Trzeba się przyzwyczajać do analizy kodu.
komentarz 30 czerwca 2015 przez efiku Szeryf (75,160 p.)
Cięzko jest patrzeć na kod z komentarzami. Komentarze kłamią.

Tu trzeba co najwyżej poprawić nazwy zmiennych ( nie skracać ich [ camelCase ] - Krecik spróbuj jakoś przerobić).

Przeczytaj książkę Czysty Kod. Martina to zrozumiesz o co chodzi z komentarzami ;)
*Wyjątek to komentarze do dokumentacji.
0 głosów
odpowiedź 29 czerwca 2015 przez Pan Kulomb Pasjonat (18,630 p.)
A to do jakiego zadanka? :D

Podobne pytania

0 głosów
1 odpowiedź 3,124 wizyt
pytanie zadane 3 czerwca 2018 w Java przez xnerwo Gaduła (3,270 p.)
0 głosów
1 odpowiedź 387 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 199 wizyt
pytanie zadane 7 listopada 2019 w C i C++ przez kaco189 Nowicjusz (170 p.)

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...