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

Negacja Bitowa.

0 głosów
1,636 wizyt
pytanie zadane 29 maja 2015 w C i C++ przez JutakPL Nowicjusz (120 p.)
Witam.

Mam problem z zanegowaniem bitu.

cout<<"Podaj bit: ";
    cin>>x;

    Wynik=~x;
    cout <<Wynik<< endl;

    system("pause");
    return 0;

wychodzą mi błędne wartości,co robie źle?

2 odpowiedzi

+1 głos
odpowiedź 29 maja 2015 przez adrian17 Mentor (355,240 p.)

Jeśli chcesz zanegować N-ty bit, najprostszy sposób to:

wartosc ^= 1 << N;
0 głosów
odpowiedź 29 maja 2015 przez Xeon Użytkownik (800 p.)
Cześć, przypominam, że liczby, które chcesz znegować są zapisane w kodzie binarnym U2.

Czyli przykładowo, gdy wpiszesz liczbę 7 to tak naprawdę masz 0111, a następnie negujesz to i otrzymujesz 1000 co w kodzie U2 daje -8, jeśli Ci tak wychodzi to masz wszystko poprawnie, a błędne wartości prawdopodobnie wynikały z niewiedzy o tym.
komentarz 29 maja 2015 przez katolik6 Dyskutant (8,140 p.)
Jeśli mamy 4 bitową zmienną, a nie mamy. Dla inta 7 to 00000000000000000000000000000111, czyli wyjdzie 11111111111111111111111111111000, czyli -... nie chce mi się liczyć, -dużo.
komentarz 29 maja 2015 przez Xeon Użytkownik (800 p.)
Przepraszam, ale to dokładnie to samo co ja napisałem, tylko mój jest skrócony :)

Nie wiem czy wiesz, ale za równo 1000 to jest -8 jak i tamto co podałeś :)
komentarz 29 maja 2015 przez katolik6 Dyskutant (8,140 p.)
:| obejrzę od nowa.
komentarz 29 maja 2015 przez Xeon Użytkownik (800 p.)
Nie musisz po prostu spróbuj zobaczyć jaką wartość ma 1000, a jaką np 11000 czy też 111000 :)
komentarz 29 maja 2015 przez katolik6 Dyskutant (8,140 p.)
Tia... masz rację, logiczne. Zapomniałem, jak się to czyta (obejrzałem odrazu po poprzednim komentarzu :s ).

Podobne pytania

0 głosów
1 odpowiedź 596 wizyt
pytanie zadane 22 stycznia 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)
0 głosów
0 odpowiedzi 329 wizyt
0 głosów
1 odpowiedź 354 wizyt
pytanie zadane 12 listopada 2016 w Java przez qwerty Początkujący (380 p.)

93,776 zapytań

142,732 odpowiedzi

323,384 komentarzy

63,379 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...