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

Zamiana liczby w zapisie U2 na NBC.

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,002 wizyt
pytanie zadane 9 stycznia 2016 w C i C++ przez KamilBest Użytkownik (640 p.)
Cześć, napisałem program zamieniający z liczby binarnej na szesnastkową, jednak wymagana jest zamiana z U2 tak aby zakres był od 0-255;

Obecnie program działa na zakresie od -128-127.

Ma to działać mniej więcej tak:

Użytkownik podaje binarną liczbę ujemną np. -159 (01100001), ta liczba zostaje zamieniona najpierw na dodatnią poprzez odjęcie bitu (czyli po dodaniu 8 jedynek) oraz po negacji tej liczby. Otrzymujemy dodatnie 159 co jest ostatecznie zamieniane na liczbę 16kową (z systemu dziesiętnego).

Gdy poda binarną dodatnią, to od razu zamieniamy na 16kowy.

Największą możliwą liczbą w takim przypadku może być 255 (najmniejszą -255, bo i tak zostaje zamieniona na dodatnią).

I teraz pytanie.. Jak mogę sprawdzić, czy podana liczba binarna z zakresu -255 do 255 jest dodatnia, czy ujemna?

Niby 1 bit oznacza znak i gdy będzie 1, to liczba jest ujemna, ale to nie będzie się zgadzało dla każdej liczby.

Np. 159(10)=10011111(2), a -159(10)=01100001(2)

Jest na to jakiś sposób, czy jest to raczej niewykonalne?

2 odpowiedzi

0 głosów
odpowiedź 9 stycznia 2016 przez sonquer Gaduła (4,280 p.)
Chwila, chwila, ja tutaj czegoś nie rozumiem.. Program za input przyjmuje to:
-159
czy to:
01100001

Bo jeżeli -159 to daj warunek i sprawdzaj czy liczba jest mniejsza od zera.
komentarz 9 stycznia 2016 przez Colossus Mądrala (6,790 p.)

"Użytkownik podaje binarną liczbę ujemną"

komentarz 9 stycznia 2016 przez sonquer Gaduła (4,280 p.)
W takim razie autor powinien zapisać to tak: 01100001 (-159) a nie tak: -159 (01100001).
komentarz 9 stycznia 2016 przez KamilBest Użytkownik (640 p.)

Przecież jest napisane binarną liczbę ujemną :)

komentarz 9 stycznia 2016 przez sonquer Gaduła (4,280 p.)
Czepiam się bo kłuje mnie to w oczy.
0 głosów
odpowiedź 10 stycznia 2016 przez nowyfolder Mądrala (7,250 p.)
edycja 10 stycznia 2016 przez nowyfolder
Liczba -159 nie mieści sie na 8 bitach. Łatwo to sprawdzić, bo ujemna liczba w U2 zaczyna sie od 1...

101100001 to wartosc w U2

Podobne pytania

0 głosów
0 odpowiedzi 1,658 wizyt
0 głosów
0 odpowiedzi 1,202 wizyt
pytanie zadane 15 listopada 2017 w Matematyka, fizyka, logika przez panstudent Nowicjusz (190 p.)
0 głosów
1 odpowiedź 908 wizyt

93,336 zapytań

142,332 odpowiedzi

322,418 komentarzy

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...