Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
Liczby szesnastkowe?
Autor Wiadomość
FE4R 


Twoja ulubiona misja: Saari - Inwazja
Pomógł: 4 razy
Wiek: 24
Dołączył: 21 Paź 2009
Posty: 144
Wysłany: 08-01-2010, 20:55   Liczby szesnastkowe?

Hej hej,

Zacząłem samemu uczyć się C++, gdyż na informatyce nie było miejsc.
Czytając podręcznik / poradnik do języka C++, natknąłem się na frazę 'liczby szesnastkowe', np. 7F (poprzedzone 0X, by zadeklarować je jako liczby szesnastkowe).
Zastanawiam się, jakie mają znaczenie w programowaniu, gdyż w matematyce chyba żadne (moja nauczycielka czegoś takiego nie zna).
 
     
sajmon313 
Jedi Master


Wiek: 28
Dołączył: 16 Gru 2009
Posty: 42
Skąd: /dev/uarndom
Wysłany: 08-01-2010, 21:05   

matematyka działa tak samo w systemie dziesiętnym, szesnastkowym, ósemkowym, binarnym, siódemkowym i każdym innym.

Czasami program który z założenia ma akceptować tylko liczby dziesiętne akceptuje też szesnastkowe (automatycznie je konwertuje).
_________________
Validator CBot - Prace Trwają
Ostatnia Aktualizacja: 02.01.10
 
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 08-01-2010, 22:19   

Liczby szesnastkowe mają podstawę 16, która jest potęgą 2 - 1 cyfra składa się z 4 cyfr binarnych (2^4=16) (np. F=1111, 8=1000)
Liczby dziesiętne mają podstawę 10, która nie jest potęgą 2 - stąd nie można ich tak łatwo konwertować na liczby binarne.
_________________
1Tbps Project && Telecomix Network

 
 
     
Reaper 


Wiek: 19
Dołączył: 29 Wrz 2009
Posty: 24
Skąd: Opole
Wysłany: 27-03-2010, 22:29   

Binarny (dwójkowy) z tego co wiem, zapisuje się tak: 1 | 2 | 4 | 8 (...) | 8192 ?

No i moje pytanie jest takie, czy czyta się je od prawej do lewej, czy to jest umowne (od lewej do prawej)?
 
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 27-03-2010, 23:20   

Źle ;x
Pisze się little endian, czyli tak
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
np. w assemblerze
mov al, 00001001b
oznacza przeniesienie wartości 9 do rejestru.

Nie wiem jak się czyta.

Żeby kogoś nie zmyliło...
w komputerach PC występuje big endian. Ma on wiele zalet, ale wadę w postaci braku przejrzystości. Popatrzmy jak wygląda liczba 0x01020304 w pamięci:
0x04, 0x03, 0x02, 0x01
Czyli binarnie:
00000100 , 00000011 , 00000010 , 00000001
Celowo dałem przecinki, bowiem mamy tu różne notacje - zarówno kolejność BAJTÓW big-endian, jak i kolejność BITÓW little-endian.
Tak naprawdę nie wiemy, jak w _pamięci komputera_ ustawione są bity - ale to nas nie obchodzi, bowiem zawsze czytamy/piszemy do RAMu bajt jako całość.
**ALE!**
Niektóre human-readable zrzuty pamięci zamieniają bajty na word'y i long'i, np. w widoku nie mamy:
Kod:
00000020 45 AB 32 9A

lecz:
Kod:
000010B0 1218 A4FE

albo wręcz:
Kod:
00001340 4A2C98D1

Co z tego wynika?
Wydajmy polecenie w bash'u i popatrzmy:
Kod:
adiblol@hydrogen:~$ echo -ne "\xDE\xAD\xBE\xEF" | hexdump
0000000 adde efbe                             
0000004

Co widzimy? Daliśmy programowi do heksadecymalnego oglądania wejścia strumień bajtów w takiej kolejności: DE, AD, BE, EF. Otrzymaliśmy ADDE, EFBE. hexdump zamienił sekwencje 2-bajtowe na word'y.

Popatrzmy do manuala hexdump'a i napiszmy odpowiedni ciąg formatujący:
Kod:
adiblol@hydrogen:~$ echo -ne "\xDE\xAD\xBE\xEF" | hexdump -e '/1 "%08_ax %08X\n"'
00000000 000000DE
00000001 000000AD
00000002 000000BE
00000003 000000EF

Za ilość bitów odpowiada: hexdump -e '/1 "%08_ax %08X\n"'. Zmieńmy jedynkę na coś innego:
Kod:
adiblol@hydrogen:~$ echo -ne "\xDE\xAD\xBE\xEF" | hexdump -e '/2 "%08_ax %08X\n"'
00000000 0000ADDE
00000002 0000EFBE

I na coś jeszcze innego:
Kod:
adiblol@hydrogen:~$ echo -ne "\xDE\xAD\xBE\xEF" | hexdump -e '/4 "%08_ax %08X\n"'
00000000 EFBEADDE

Jeśli ktoś chce w przyszłości zostać informatykiem, to powinien przeanalizować sobie te skutki zmiany ilości bajtów ...
_________________
1Tbps Project && Telecomix Network

Ostatnio zmieniony przez adiblol 17-05-2010, 14:33, w całości zmieniany 1 raz  
 
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 29-03-2010, 14:16   

Ze co?

// Że g*wno, 1:0 -adiblol
Ostatnio zmieniony przez adiblol 29-03-2010, 15:31, w całości zmieniany 1 raz  
 
 
     
FE4R 


Twoja ulubiona misja: Saari - Inwazja
Pomógł: 4 razy
Wiek: 24
Dołączył: 21 Paź 2009
Posty: 144
Wysłany: 31-03-2010, 22:38   

adiblol, po studiach informatycznych jesteś?
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 31-03-2010, 23:37   

Cytat:
adiblol, po studiach informatycznych jesteś?

"Papiery" (dokumenty) są dla noobów :mrgreen: .
"Oficjalnie" jestem na takim samym poziomie jak reszta noobów co nawet Ubuntu zainstalować nie potrafią...
...MEN ssie...
amen.
_________________
1Tbps Project && Telecomix Network

 
 
     
FE4R 


Twoja ulubiona misja: Saari - Inwazja
Pomógł: 4 razy
Wiek: 24
Dołączył: 21 Paź 2009
Posty: 144
Wysłany: 01-04-2010, 11:39   

adiblol napisał/a:
"Papiery" (dokumenty) są dla noobów :mrgreen: .
"Oficjalnie" jestem na takim samym poziomie jak reszta noobów co nawet Ubuntu zainstalować nie potrafią...
...MEN ssie...
amen.

Uczyłbyś się za granicą - byłoby tak samo. Trzeba być tym zainteresowanym, dlatego też pytam. ^^ (Nie, nie zainteresowanym Tobą, tylko informatyką). :mrgreen:
 
     
Simbax 
Mod


Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy
Wiek: 22
Dołączył: 07 Sie 2009
Posty: 473
Skąd: z Leszna
Wysłany: 02-10-2010, 13:46   

Wyczytałem sobie w google, że szesnastkowy system się stosuje dlatego, że zapis w nim jest krótszy od dziesiętnego :) Np. AB12 to liczba 43794 Ciekawych rzeczy się dowiedziałem z tego artykułu: http://www.programuj.com/...ne/sysliczb.php , pod koniec jest o zapisie szesnastkowym. BTW Resztę się wcześniej na matmie z ciekawostek dowiedziałem ;p
_________________
http://projektsimbax.blogspot.com/ <- Taki sobie blog
 
     
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 02-10-2010, 15:17   

Nie dlatego że jest krótszy od dziesiętnego, tylko dlatego że jest krótszy od binarnego np.

0010 0101 to szesnastkowo 25 :D
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
 
 
     
Simbax 
Mod


Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy
Wiek: 22
Dołączył: 07 Sie 2009
Posty: 473
Skąd: z Leszna
Wysłany: 02-10-2010, 16:06   

Ale od dziesiętnego też :-P
_________________
http://projektsimbax.blogspot.com/ <- Taki sobie blog
 
     
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 03-10-2010, 01:32   

Od dziesiętnego też, ale nie ma dużej różnicy.
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
 
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 03-10-2010, 11:34   

System szesnastkowy jest niby krotszy od dziesietnego, ale zamiana z dziesietnego na szesnastkowy to masakra i operowanie na dziesietnym jest duzo latwiejsze.
_________________
 
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 03-10-2010, 13:53   

Jest łatwiejszy ponieważ jesteś przyzwyczajony. Dla komputera łatwiejszy jest szesnastkowy, ponieważ *zawsze* 1 cyfra szesnastkowa to 4 cyfry dwójkowe.
_________________
1Tbps Project && Telecomix Network

 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012