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

Przesunięcia bitowe - przydatny programik.

+3 głosów
1,076 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,530 wizyt
pytanie zadane 3 czerwca 2018 w Java przez xnerwo Gaduła (3,270 p.)
0 głosów
1 odpowiedź 504 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 7 listopada 2019 w C i C++ przez kaco189 Nowicjusz (170 p.)

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...