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

Zakres wyznaczania liczb

Object Storage Arubacloud
0 głosów
448 wizyt
pytanie zadane 27 grudnia 2016 w Matematyka, fizyka, logika przez qlucha Obywatel (1,790 p.)
Zmienna int znana z C++ zajmuje w pamięci 4 bajty,
czyli 32 bity dwójkowo. Po zamianie na system dziesiętny daje to nastepujący zakres liczb :

int    4B    od -2'147'483'648 do 2'147'483'647

I TU MOJE PYTANIE , przecież z zakresu 4 Bajtów po konwersji z
BIN na DEC liczby zero - jedynkowej jestem wstanie wyznaczyć
liczby z zakresu od 0 do 4294967295 decymalnie dla 32 bitów.

dlaczego jest tak że plus znak moduł 1 jako minus i 0 jako plus zakres nie wynosi
od -4294967295 do 4294967294  ???  z czym sie to wiąże te ograniczenie ???

(moje pytanie wynika z tad że w jednym z odcinków Miroslaw Zelent dla systemu 3 bitowego podał zakres liczb jaki możemy wyznaczyć wynosi 0-7 i -0do-7 czyli 16 liczb  )

2 odpowiedzi

0 głosów
odpowiedź 27 grudnia 2016 przez Patrycjerz Mędrzec (192,320 p.)
Liczba to unikatowa kombinacja cyfr. Jeśli mamy 32 cyfry, które mogą mieć postać 0 lub 1, to wychodzi właśnie 4294967296 liczb (czyli unikatowych kombinacji), które możemy ułożyć za pomocą tych cyfr.

Jeśli ilość kombinacji jest niezmienna, to po przesunięciu wartości na osi w stronę ujemną wyjdzie nam właśnie podział na prawie dwie równe części.

Co do odcinka, do którego masz wątpliwości... mógłbyś podać link do niego razem z minutą filmu, w której zostaje to wypowiedziane? Sądzę, że po prostu nie zrozumiałeś tego fragmentu, ale muszę się upewnić.
komentarz 27 grudnia 2016 przez qlucha Obywatel (1,790 p.)
komentarz 27 grudnia 2016 przez Patrycjerz Mędrzec (192,320 p.)
Przecież ten fragment jasno mówi, że na czterech bitach można zapisać 16 liczb (kombinacji), gdzie po części dodatniej mamy 7 liczb, po części ujemnej 7, no i te 2 zera - razem 16.

Oczywiście binarny sposób zapisu liczb w pamięci komputera nie jest identyczny do normalnego zapisu w systemie dwójkowym, gdzie, jak przy liczbach dziesiętnych, występuje znak + lub - przed liczbą.
komentarz 27 grudnia 2016 przez qlucha Obywatel (1,790 p.)
Ja bardziej zastanawiam sie nad metodą oznaczania zapisu dla zakresu pojemności aby uniknac przepelnienia dla danej zmiennej , O co mi chodzi :

w odcinku dla systemu 3 bitowego podano zakres od 0-7 i od -0 do -7

gdzie 3 bity   np 111  -  i ich suma wag jest równa 7 podano zakres powyżej.(gdzie dla sumy wag wyznaczamy wartosc decymalna po konwersji z BIN na DEC)

a dla  32 bitów  111......011  suma wag wynosi 4294967295 a zakres  podawany jest jako

od -2'147'483'648 do 2'147'483'647

 

Mama nadzieje że moja wypowiedz jest zrozumiała , chyba że gdzieś zaczynam gubic sie za bardzo , prosze o wyrozumiałosć jeśli gdzieś mylę pojęcia ale dopiero się ucze .dzieki
0 głosów
odpowiedź 27 grudnia 2016 przez unknown Nałogowiec (39,560 p.)

Zmienna int znana z C++ zajmuje w pamięci 4 bajty

Nieprawda. Zależy od implementacji.

A co do pytania: na 4 bajtach można zapisać 2^32 liczb. W przedziale, który podałeś niżej tych liczb jest więcej. Do zapisania tych liczb potrzebowałbyś 33 bitów.

Podobne pytania

+1 głos
2 odpowiedzi 241 wizyt
0 głosów
2 odpowiedzi 5,789 wizyt
pytanie zadane 29 grudnia 2016 w JavaScript przez Fiduciam Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 117 wizyt
pytanie zadane 1 kwietnia 2018 w JavaScript przez GracjanDogg Użytkownik (840 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 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!

...