{"id":1342,"date":"2026-04-19T14:44:52","date_gmt":"2026-04-19T12:44:52","guid":{"rendered":"https:\/\/trzykody.pl\/?p=1342"},"modified":"2026-04-19T14:44:54","modified_gmt":"2026-04-19T12:44:54","slug":"kod-szesnastkowy","status":"publish","type":"post","link":"https:\/\/trzykody.pl\/index.php\/2026\/04\/19\/kod-szesnastkowy\/","title":{"rendered":"Kod szesnastkowy"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Systemy komputerowe operuj\u0105 na bitach, ale cz\u0142owiek znacznie \u0142atwiej czyta kr\u00f3tsze i bardziej zwarte zapisy liczb. Zapis binarny szybko staje si\u0119 nieczytelny, szczeg\u00f3lnie przy adresach pami\u0119ci, kolorach, maskach bitowych czy analizie danych przesy\u0142anych przez sie\u0107. Z tego powodu stosuje si\u0119 system pozycyjny o podstawie 16, kt\u00f3ry dobrze odwzorowuje struktur\u0119 binarn\u0105 i pozwala szybciej zauwa\u017cy\u0107 b\u0142\u0119dy. W praktyce podstaw\u0105 tej reprezentacji jest <strong>Kod szesnastkowy<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Spis Tre\u015bci<\/h2><nav><ol><li><a href=\"#dlaczego-kod-szesnastkowy-jest-wygodniejszy-od-zapisu-binarnego-i-gdzie-naprawde-oszczedza-czas-pracy\">Dlaczego Kod szesnastkowy jest wygodniejszy od zapisu binarnego i gdzie naprawd\u0119 oszcz\u0119dza czas pracy<\/a><\/li><li><a href=\"#jak-kod-szesnastkowy-zamienia-sie-na-dziesietny-i-binarny-bez-zgadywania-i-bez-bledow-rachunkowych\">Jak Kod szesnastkowy zamienia si\u0119 na dziesi\u0119tny i binarny bez zgadywania i bez b\u0142\u0119d\u00f3w rachunkowych<\/a><ol><li><a href=\"#zamiana-na-system-dziesietny\">Zamiana na system dziesi\u0119tny<\/a><\/li><li><a href=\"#zamiana-binarnego-na-hex\">Zamiana binarnego na hex<\/a><\/li><li><a href=\"#zamiana-z-hex-na-binarny\">Zamiana z hex na binarny<\/a><\/li><li><a href=\"#przyklady-kodu-w-tabeli\">Przyk\u0142ady kodu w tabeli<\/a><\/li><\/ol><\/li><li><a href=\"#gdzie-kod-szesnastkowy-pojawia-sie-w-programowaniu-niskopoziomowym-sieciach-i-codziennej-pracy-developera\">Gdzie Kod szesnastkowy pojawia si\u0119 w programowaniu niskopoziomowym, sieciach i codziennej pracy developera<\/a><ol><li><a href=\"#adresy-pamieci\">Adresy pami\u0119ci<\/a><\/li><li><a href=\"#maski-bitowe\">Maski bitowe<\/a><\/li><li><a href=\"#sieci-komputerowe\">Sieci komputerowe<\/a><\/li><li><a href=\"#kolory-i-frontend\">Kolory i frontend<\/a><\/li><li><a href=\"#hashowanie\">Hashowanie<\/a><\/li><\/ol><\/li><li><a href=\"#typowe-bledy-i-miejsca-w-ktorych-najlatwiej-stracic-czas\">Typowe b\u0142\u0119dy i miejsca, w kt\u00f3rych naj\u0142atwiej straci\u0107 czas<\/a><ol><li><a href=\"#mylenie-litery-o-z-cyfra-0\">Mylenie litery O z cyfr\u0105 0<\/a><\/li><li><a href=\"#zapominanie-o-prefiksie\">Zapominanie o prefiksie<\/a><\/li><li><a href=\"#bledne-grupowanie-bitow\">B\u0142\u0119dne grupowanie bit\u00f3w<\/a><\/li><li><a href=\"#zakladanie-ze-a-oznacza-pierwsza-litere\">Zak\u0142adanie, \u017ce A oznacza \u201epierwsz\u0105 liter\u0119\u201d<\/a><\/li><li><a href=\"#nieczytelne-formatowanie\">Nieczytelne formatowanie<\/a><\/li><\/ol><\/li><li><a href=\"#faq\">FAQ<\/a><ol><li><a href=\"#czy-system-szesnastkowy-jest-szybszy-od-binarnego-dla-komputera\">Czy system szesnastkowy jest szybszy od binarnego dla komputera?<\/a><\/li><li><a href=\"#dlaczego-uzywa-sie-liter-tylko-do-f\">Dlaczego u\u017cywa si\u0119 liter tylko do F?<\/a><\/li><li><a href=\"#czy-0-x-i-oznaczaja-to-samo\">Czy 0x i # oznaczaj\u0105 to samo?<\/a><\/li><li><a href=\"#czy-mozna-uzywac-malych-liter-a-f\">Czy mo\u017cna u\u017cywa\u0107 ma\u0142ych liter a\u2013f?<\/a><\/li><li><a href=\"#czy-adres-mac-tez-jest-zapisywany-w-hex\">Czy adres MAC te\u017c jest zapisywany w hex?<\/a><\/li><li><a href=\"#czy-trzeba-umiec-liczyc-recznie\">Czy trzeba umie\u0107 liczy\u0107 r\u0119cznie?<\/a><\/li><\/ol><\/li><\/ol><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dlaczego-kod-szesnastkowy-jest-wygodniejszy-od-zapisu-binarnego-i-gdzie-naprawde-oszczedza-czas-pracy\">Dlaczego Kod szesnastkowy jest wygodniejszy od zapisu binarnego i gdzie naprawd\u0119 oszcz\u0119dza czas pracy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">System szesnastkowy (hexadecimal, hex) wykorzystuje 16 symboli: cyfry od 0 do 9 oraz litery A, B, C, D, E, F. Litery oznaczaj\u0105 warto\u015bci od 10 do 15.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Najwa\u017cniejsza zaleta nie wynika z estetyki zapisu, ale z matematycznej zgodno\u015bci z systemem binarnym. Jedna cyfra szesnastkowa odpowiada dok\u0142adnie 4 bitom, poniewa\u017c:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Zale\u017cno\u015b\u0107<\/th><\/tr><\/thead><tbody><tr><td>2\u2074 = 16<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To oznacza, \u017ce bajt (8 bit\u00f3w) mo\u017cna zapisa\u0107 jako dok\u0142adnie dwie cyfry hex. Dla programisty, administratora system\u00f3w albo osoby analizuj\u0105cej dane w pami\u0119ci to ogromne uproszczenie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142ad:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>System binarny<\/th><th>System dziesi\u0119tny<\/th><th>System szesnastkowy<\/th><\/tr><\/thead><tbody><tr><td>11111111<\/td><td>255<\/td><td>FF<\/td><\/tr><tr><td>10101010<\/td><td>170<\/td><td>AA<\/td><\/tr><tr><td>00010000<\/td><td>16<\/td><td>10<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Zapis binarny jest poprawny, ale przy d\u0142u\u017cszych warto\u015bciach \u0142atwo zgubi\u0107 jedno zero. W zapisie szesnastkowym ten problem jest znacznie mniejszy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typowe miejsca u\u017cycia:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>adresy pami\u0119ci RAM i rejestr\u00f3w procesora<\/li>\n\n\n\n<li>debugowanie program\u00f3w<\/li>\n\n\n\n<li>analiza pakiet\u00f3w sieciowych<\/li>\n\n\n\n<li>kolory w HTML i CSS<\/li>\n\n\n\n<li>identyfikatory w systemach operacyjnych<\/li>\n\n\n\n<li>hashowanie danych (MD5, SHA)<\/li>\n\n\n\n<li>kod maszynowy i asembler<\/li>\n\n\n\n<li>konfiguracja urz\u0105dze\u0144 embedded<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142ad koloru:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kolor<\/th><th>RGB dziesi\u0119tnie<\/th><th>Hex<\/th><\/tr><\/thead><tbody><tr><td>bia\u0142y<\/td><td>255, 255, 255<\/td><td>#FFFFFF<\/td><\/tr><tr><td>czarny<\/td><td>0, 0, 0<\/td><td>#000000<\/td><\/tr><tr><td>czerwony<\/td><td>255, 0, 0<\/td><td>#FF0000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">W praktyce programista cz\u0119\u015bciej zobaczy <code>0x7F<\/code>, <code>0xFF<\/code>, <code>#1A73E8<\/code> ni\u017c d\u0142ugi zapis binarny.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"jak-kod-szesnastkowy-zamienia-sie-na-dziesietny-i-binarny-bez-zgadywania-i-bez-bledow-rachunkowych\">Jak Kod szesnastkowy zamienia si\u0119 na dziesi\u0119tny i binarny bez zgadywania i bez b\u0142\u0119d\u00f3w rachunkowych<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To miejsce zwykle sprawia problemy pocz\u0105tkuj\u0105cym, bo litery wygl\u0105daj\u0105 \u201enienaturalnie\u201d. W rzeczywisto\u015bci mechanizm jest identyczny jak w ka\u017cdym systemie pozycyjnym.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zamiana-na-system-dziesietny\">Zamiana na system dziesi\u0119tny<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ka\u017cda pozycja ma wag\u0119 b\u0119d\u0105c\u0105 pot\u0119g\u0105 16.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142ad liczby:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Liczba<\/th><th>Rozpisanie<\/th><\/tr><\/thead><tbody><tr><td>2A\u2081\u2086<\/td><td>2 \u00d7 16\u00b9 + A \u00d7 16\u2070<\/td><\/tr><tr><td>A = 10<\/td><td>2 \u00d7 16 + 10 \u00d7 1<\/td><\/tr><tr><td>Wynik<\/td><td>42<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kolejny przyk\u0142ad:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Liczba<\/th><th>Obliczenie<\/th><\/tr><\/thead><tbody><tr><td>1F3\u2081\u2086<\/td><td>1 \u00d7 16\u00b2 + 15 \u00d7 16\u00b9 + 3 \u00d7 16\u2070<\/td><\/tr><tr><td>Wynik<\/td><td>256 + 240 + 3<\/td><\/tr><tr><td>Suma<\/td><td>499<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nie trzeba pami\u0119ta\u0107 skomplikowanych wzor\u00f3w. Wystarczy zna\u0107 warto\u015bci A\u2013F i pot\u0119gi liczby 16.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zamiana-binarnego-na-hex\">Zamiana binarnego na hex<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Najwygodniejsza metoda to grupowanie po 4 bity od prawej strony.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142ad:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Binarnie<\/th><th>Grupowanie<\/th><th>Hex<\/th><\/tr><\/thead><tbody><tr><td>11010111<\/td><td>1101 0111<\/td><td>D7<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tabela pomocnicza:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Bity<\/th><th>Hex<\/th><\/tr><\/thead><tbody><tr><td>0000<\/td><td>0<\/td><\/tr><tr><td>0001<\/td><td>1<\/td><\/tr><tr><td>1001<\/td><td>9<\/td><\/tr><tr><td>1010<\/td><td>A<\/td><\/tr><tr><td>1110<\/td><td>E<\/td><\/tr><tr><td>1111<\/td><td>F<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ta metoda jest szybka i praktycznie eliminuje b\u0142\u0119dy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zamiana-z-hex-na-binarny\">Zamiana z hex na binarny<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Proces odwrotny: ka\u017cd\u0105 cyfr\u0119 zamieniamy na 4 bity.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Hex<\/th><th>Binarnie<\/th><\/tr><\/thead><tbody><tr><td>3F<\/td><td>0011 1111<\/td><\/tr><tr><td>A2<\/td><td>1010 0010<\/td><\/tr><tr><td>FF<\/td><td>1111 1111<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To szczeg\u00f3lnie wa\u017cne przy maskach bitowych i operacjach logicznych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklady-kodu-w-tabeli\">Przyk\u0142ady kodu w tabeli<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>C<\/td><td><code>c\\n#include &lt;stdio.h&gt;\\n\\nint main() {\\n int x = 0x2A;\\n printf(\\\"%d\\\\n\\\", x);\\n return 0;\\n}\\n<\/code><\/td><\/tr><tr><td>C++<\/td><td><code>cpp\\n#include &lt;iostream&gt;\\nusing namespace std;\\n\\nint main() {\\n int x = 0xFF;\\n cout &lt;&lt; x &lt;&lt; endl;\\n return 0;\\n}\\n<\/code><\/td><\/tr><tr><td>Python<\/td><td><code>python\\nx = 0x1F\\nprint(x)\\nprint(hex(255))\\n<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">W ka\u017cdym przypadku kompilator lub interpreter rozumie zapis hex jako zwyk\u0142\u0105 liczb\u0119 ca\u0142kowit\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"gdzie-kod-szesnastkowy-pojawia-sie-w-programowaniu-niskopoziomowym-sieciach-i-codziennej-pracy-developera\">Gdzie Kod szesnastkowy pojawia si\u0119 w programowaniu niskopoziomowym, sieciach i codziennej pracy developera<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Najwi\u0119cej sensu ten zapis ma tam, gdzie pracuje si\u0119 blisko sprz\u0119tu albo surowych danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"adresy-pamieci\">Adresy pami\u0119ci<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Adres pami\u0119ci:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Przyk\u0142ad<\/th><\/tr><\/thead><tbody><tr><td>0x7FFEAB10<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Taki zapis jest standardem, bo dobrze odpowiada granicom bajt\u00f3w i s\u0142\u00f3w maszynowych. W debugerach praktycznie wszystko prezentowane jest w tej formie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"maski-bitowe\">Maski bitowe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Flagi systemowe:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Warto\u015b\u0107<\/th><th>Znaczenie<\/th><\/tr><\/thead><tbody><tr><td>0x01<\/td><td>pierwszy bit<\/td><\/tr><tr><td>0x02<\/td><td>drugi bit<\/td><\/tr><tr><td>0x04<\/td><td>trzeci bit<\/td><\/tr><tr><td>0x08<\/td><td>czwarty bit<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0141\u0105czenie:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Operacja<\/th><\/tr><\/thead><tbody><tr><td>0x01 | 0x04 = 0x05<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Taki zapis jest czytelniejszy ni\u017c ci\u0105g <code>00000101<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"sieci-komputerowe\">Sieci komputerowe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Analiza pakiet\u00f3w TCP\/IP cz\u0119sto pokazuje dane jako dump hex:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Przyk\u0142ad<\/th><\/tr><\/thead><tbody><tr><td>48 54 54 50<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Po konwersji ASCII:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Wynik<\/th><\/tr><\/thead><tbody><tr><td>HTTP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Administratorzy i osoby analizuj\u0105ce ruch sieciowy korzystaj\u0105 z tego codziennie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kolory-i-frontend\">Kolory i frontend<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">CSS:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><\/tr><\/thead><tbody><tr><td><code>css\\ncolor: #2F80ED;\\nbackground: #F2F2F2;\\n<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ka\u017cda para znak\u00f3w oznacza intensywno\u015b\u0107 kana\u0142u:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RR \u2013 red<\/li>\n\n\n\n<li>GG \u2013 green<\/li>\n\n\n\n<li>BB \u2013 blue<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hashowanie\">Hashowanie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142ad skr\u00f3tu:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Hash<\/th><\/tr><\/thead><tbody><tr><td>5d41402abc4b2a76b9719d911017c592<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Taki ci\u0105g jest prezentowany w hex, poniewa\u017c binarnie by\u0142by praktycznie nieczytelny.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"typowe-bledy-i-miejsca-w-ktorych-najlatwiej-stracic-czas\">Typowe b\u0142\u0119dy i miejsca, w kt\u00f3rych naj\u0142atwiej straci\u0107 czas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mylenie-litery-o-z-cyfra-0\">Mylenie litery O z cyfr\u0105 0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To bardzo cz\u0119sty problem przy r\u0119cznym przepisywaniu warto\u015bci. W systemie szesnastkowym wyst\u0119puje tylko zero, nie litera O.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zapominanie-o-prefiksie\">Zapominanie o prefiksie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W wielu j\u0119zykach:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Poprawnie<\/th><th>Niepoprawnie<\/th><\/tr><\/thead><tbody><tr><td>0xFF<\/td><td>FF<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bez prefiksu parser mo\u017ce potraktowa\u0107 warto\u015b\u0107 jako zwyk\u0142y tekst lub zg\u0142osi\u0107 b\u0142\u0105d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bledne-grupowanie-bitow\">B\u0142\u0119dne grupowanie bit\u00f3w<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Grupowanie musi i\u015b\u0107 od prawej strony.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Poprawnie<\/th><\/tr><\/thead><tbody><tr><td>101101 \u2192 0010 1101<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nie:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>B\u0142\u0119dnie<\/th><\/tr><\/thead><tbody><tr><td>1011 01<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To daje z\u0142y wynik.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zakladanie-ze-a-oznacza-pierwsza-litere\">Zak\u0142adanie, \u017ce A oznacza \u201epierwsz\u0105 liter\u0119\u201d<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A to po prostu warto\u015b\u0107 10, nie symbol specjalny. Warto od pocz\u0105tku traktowa\u0107 A\u2013F jak normalne cyfry.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"nieczytelne-formatowanie\">Nieczytelne formatowanie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W praktyce du\u017ce warto\u015bci dobrze dzieli\u0107:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Lepszy zapis<\/th><\/tr><\/thead><tbody><tr><td>0xFFEEA012<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">zamiast chaotycznego ci\u0105gu bez kontekstu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-system-szesnastkowy-jest-szybszy-od-binarnego-dla-komputera\">Czy system szesnastkowy jest szybszy od binarnego dla komputera?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie. Komputer i tak operuje na bitach. Hex jest wygodniejszy dla cz\u0142owieka, nie dla procesora.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dlaczego-uzywa-sie-liter-tylko-do-f\">Dlaczego u\u017cywa si\u0119 liter tylko do F?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bo system ma podstaw\u0119 16. Potrzebne s\u0105 symbole dla warto\u015bci 0\u201315, wi\u0119c po cyfrach 0\u20139 dochodz\u0105 A\u2013F.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-0-x-i-oznaczaja-to-samo\">Czy 0x i # oznaczaj\u0105 to samo?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie zawsze. <code>0x<\/code> najcz\u0119\u015bciej oznacza liczb\u0119 szesnastkow\u0105 w programowaniu, a <code>#<\/code> zwykle zapis koloru w HTML i CSS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-mozna-uzywac-malych-liter-a-f\">Czy mo\u017cna u\u017cywa\u0107 ma\u0142ych liter a\u2013f?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tak. <code>0xFF<\/code> i <code>0xff<\/code> oznaczaj\u0105 t\u0119 sam\u0105 warto\u015b\u0107. W projektach warto jednak trzyma\u0107 jeden styl.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-adres-mac-tez-jest-zapisywany-w-hex\">Czy adres MAC te\u017c jest zapisywany w hex?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tak. Przyk\u0142ad:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Adres MAC<\/th><\/tr><\/thead><tbody><tr><td>00:1A:2B:3C:4D:5E<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ka\u017cda para znak\u00f3w reprezentuje jeden bajt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-trzeba-umiec-liczyc-recznie\">Czy trzeba umie\u0107 liczy\u0107 r\u0119cznie?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W pracy codziennej pomagaj\u0105 narz\u0119dzia i debugery, ale r\u0119czne rozumienie konwersji bardzo u\u0142atwia diagnozowanie b\u0142\u0119d\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">System szesnastkowy nie jest dodatkiem \u201edla zaawansowanych\u201d, tylko praktycznym skr\u00f3tem u\u017cywanym wsz\u0119dzie tam, gdzie pojawiaj\u0105 si\u0119 bity, bajty i pami\u0119\u0107. Bez jego rozumienia trudno wygodnie pracowa\u0107 z niskopoziomowym kodem, analiz\u0105 danych czy nawet zwyk\u0142ym frontendem. Najwi\u0119cej daje nie samo zapami\u0119tanie symboli, ale zrozumienie relacji mi\u0119dzy binarnym, dziesi\u0119tnym i hex.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u0179r\u00f3d\u0142o Foto: Freepik<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Systemy komputerowe operuj\u0105 na bitach, ale cz\u0142owiek znacznie \u0142atwiej czyta kr\u00f3tsze i bardziej zwarte zapisy liczb. Zapis binarny szybko staje si\u0119 nieczytelny, szczeg\u00f3lnie przy adresach pami\u0119ci, kolorach, maskach bitowych czy analizie danych przesy\u0142anych przez sie\u0107. Z tego powodu stosuje si\u0119 system pozycyjny o podstawie 16, kt\u00f3ry dobrze odwzorowuje struktur\u0119 binarn\u0105 i pozwala szybciej zauwa\u017cy\u0107 b\u0142\u0119dy. W praktyce podstaw\u0105 tej reprezentacji jest Kod szesnastkowy. Dlaczego Kod szesnastkowy jest wygodniejszy od zapisu binarnego i gdzie naprawd\u0119 oszcz\u0119dza czas pracy System szesnastkowy (hexadecimal, hex) wykorzystuje 16 symboli: cyfry od 0 do 9 oraz litery A, B, C, D, E, F. Litery oznaczaj\u0105 warto\u015bci od 10 do 15. Najwa\u017cniejsza zaleta nie wynika z estetyki zapisu, ale z matematycznej zgodno\u015bci z systemem binarnym. Jedna cyfra szesnastkowa odpowiada dok\u0142adnie 4 bitom, poniewa\u017c: Zale\u017cno\u015b\u0107 2\u2074 = 16 To oznacza, \u017ce bajt (8 bit\u00f3w) mo\u017cna zapisa\u0107 jako dok\u0142adnie dwie cyfry hex. Dla programisty, administratora system\u00f3w albo osoby analizuj\u0105cej dane w pami\u0119ci to ogromne uproszczenie. Przyk\u0142ad: System binarny System dziesi\u0119tny System szesnastkowy 11111111 255 FF 10101010 170 AA 00010000 16 10 Zapis binarny jest poprawny, ale przy d\u0142u\u017cszych warto\u015bciach \u0142atwo zgubi\u0107 jedno zero. W zapisie szesnastkowym ten problem jest znacznie mniejszy. Typowe miejsca u\u017cycia: Przyk\u0142ad koloru: Kolor RGB dziesi\u0119tnie Hex bia\u0142y 255, 255, 255 #FFFFFF czarny 0, 0, 0 #000000 czerwony 255, 0, 0 #FF0000 W praktyce programista cz\u0119\u015bciej zobaczy 0x7F, 0xFF, #1A73E8 ni\u017c d\u0142ugi zapis binarny. Jak Kod szesnastkowy zamienia si\u0119 na dziesi\u0119tny i binarny bez zgadywania i bez b\u0142\u0119d\u00f3w rachunkowych To miejsce zwykle sprawia problemy pocz\u0105tkuj\u0105cym, bo litery wygl\u0105daj\u0105 \u201enienaturalnie\u201d. W rzeczywisto\u015bci mechanizm jest identyczny jak w ka\u017cdym systemie pozycyjnym. Zamiana na system dziesi\u0119tny Ka\u017cda pozycja ma wag\u0119 b\u0119d\u0105c\u0105 pot\u0119g\u0105 16. Przyk\u0142ad liczby: Liczba Rozpisanie 2A\u2081\u2086 2 \u00d7 16\u00b9 + A \u00d7 16\u2070 A = 10 2 \u00d7 16 + 10 \u00d7 1 Wynik 42 Kolejny przyk\u0142ad: Liczba Obliczenie 1F3\u2081\u2086 1 \u00d7 16\u00b2 + 15 \u00d7 16\u00b9 + 3 \u00d7 16\u2070 Wynik 256 + 240 + 3 Suma 499 Nie trzeba pami\u0119ta\u0107 skomplikowanych wzor\u00f3w. Wystarczy zna\u0107 warto\u015bci A\u2013F i pot\u0119gi liczby 16. Zamiana binarnego na hex Najwygodniejsza metoda to grupowanie po 4 bity od prawej strony. Przyk\u0142ad: Binarnie Grupowanie Hex 11010111 1101 0111 D7 Tabela pomocnicza: Bity Hex 0000 0 0001 1 1001 9 1010 A 1110 E 1111 F Ta metoda jest szybka i praktycznie eliminuje b\u0142\u0119dy. Zamiana z hex na binarny Proces odwrotny: ka\u017cd\u0105 cyfr\u0119 zamieniamy na 4 bity. Hex Binarnie 3F 0011 1111 A2 1010 0010 FF 1111 1111 To szczeg\u00f3lnie wa\u017cne przy maskach bitowych i operacjach logicznych. Przyk\u0142ady kodu w tabeli J\u0119zyk Kod C c\\n#include &lt;stdio.h&gt;\\n\\nint main() {\\n int x = 0x2A;\\n printf(\\&#8221;%d\\\\n\\&#8221;, x);\\n return 0;\\n}\\n C++ cpp\\n#include &lt;iostream&gt;\\nusing namespace std;\\n\\nint main() {\\n int x = 0xFF;\\n cout &lt;&lt; x &lt;&lt; endl;\\n return 0;\\n}\\n Python python\\nx = 0x1F\\nprint(x)\\nprint(hex(255))\\n W ka\u017cdym przypadku kompilator lub interpreter rozumie zapis hex jako zwyk\u0142\u0105 liczb\u0119 ca\u0142kowit\u0105. Gdzie Kod szesnastkowy pojawia si\u0119 w programowaniu niskopoziomowym, sieciach i codziennej pracy developera Najwi\u0119cej sensu ten zapis ma tam, gdzie pracuje si\u0119 blisko sprz\u0119tu albo surowych danych. Adresy pami\u0119ci Adres pami\u0119ci: Przyk\u0142ad 0x7FFEAB10 Taki zapis jest standardem, bo dobrze odpowiada granicom bajt\u00f3w i s\u0142\u00f3w maszynowych. W debugerach praktycznie wszystko prezentowane jest w tej formie. Maski bitowe Flagi systemowe: Warto\u015b\u0107 Znaczenie 0x01 pierwszy bit 0x02 drugi bit 0x04 trzeci bit 0x08 czwarty bit \u0141\u0105czenie: Operacja 0x01 | 0x04 = 0x05 Taki zapis jest czytelniejszy ni\u017c ci\u0105g 00000101. Sieci komputerowe Analiza pakiet\u00f3w TCP\/IP cz\u0119sto pokazuje dane jako dump hex: Przyk\u0142ad 48 54 54 50 Po konwersji ASCII: Wynik HTTP Administratorzy i osoby analizuj\u0105ce ruch sieciowy korzystaj\u0105 z tego codziennie. Kolory i frontend CSS: Kod css\\ncolor: #2F80ED;\\nbackground: #F2F2F2;\\n Ka\u017cda para znak\u00f3w oznacza intensywno\u015b\u0107 kana\u0142u: Hashowanie Przyk\u0142ad skr\u00f3tu: Hash 5d41402abc4b2a76b9719d911017c592 Taki ci\u0105g jest prezentowany w hex, poniewa\u017c binarnie by\u0142by praktycznie nieczytelny. Typowe b\u0142\u0119dy i miejsca, w kt\u00f3rych naj\u0142atwiej straci\u0107 czas Mylenie litery O z cyfr\u0105 0 To bardzo cz\u0119sty problem przy r\u0119cznym przepisywaniu warto\u015bci. W systemie szesnastkowym wyst\u0119puje tylko zero, nie litera O. Zapominanie o prefiksie W wielu j\u0119zykach: Poprawnie Niepoprawnie 0xFF FF Bez prefiksu parser mo\u017ce potraktowa\u0107 warto\u015b\u0107 jako zwyk\u0142y tekst lub zg\u0142osi\u0107 b\u0142\u0105d. B\u0142\u0119dne grupowanie bit\u00f3w Grupowanie musi i\u015b\u0107 od prawej strony. Poprawnie 101101 \u2192 0010 1101 Nie: B\u0142\u0119dnie 1011 01 To daje z\u0142y wynik. Zak\u0142adanie, \u017ce A oznacza \u201epierwsz\u0105 liter\u0119\u201d A to po prostu warto\u015b\u0107 10, nie symbol specjalny. Warto od pocz\u0105tku traktowa\u0107 A\u2013F jak normalne cyfry. Nieczytelne formatowanie W praktyce du\u017ce warto\u015bci dobrze dzieli\u0107: Lepszy zapis 0xFFEEA012 zamiast chaotycznego ci\u0105gu bez kontekstu. FAQ Czy system szesnastkowy jest szybszy od binarnego dla komputera? Nie. Komputer i tak operuje na bitach. Hex jest wygodniejszy dla cz\u0142owieka, nie dla procesora. Dlaczego u\u017cywa si\u0119 liter tylko do F? Bo system ma podstaw\u0119 16. Potrzebne s\u0105 symbole dla warto\u015bci 0\u201315, wi\u0119c po cyfrach 0\u20139 dochodz\u0105 A\u2013F. Czy 0x i # oznaczaj\u0105 to samo? Nie zawsze. 0x najcz\u0119\u015bciej oznacza liczb\u0119 szesnastkow\u0105 w programowaniu, a # zwykle zapis koloru w HTML i CSS. Czy mo\u017cna u\u017cywa\u0107 ma\u0142ych liter a\u2013f? Tak. 0xFF i 0xff oznaczaj\u0105 t\u0119 sam\u0105 warto\u015b\u0107. W projektach warto jednak trzyma\u0107 jeden styl. Czy adres MAC te\u017c jest zapisywany w hex? Tak. Przyk\u0142ad: Adres MAC 00:1A:2B:3C:4D:5E Ka\u017cda para znak\u00f3w reprezentuje jeden bajt. Czy trzeba umie\u0107 liczy\u0107 r\u0119cznie? W pracy codziennej pomagaj\u0105 narz\u0119dzia i debugery, ale r\u0119czne rozumienie konwersji bardzo u\u0142atwia diagnozowanie b\u0142\u0119d\u00f3w. System szesnastkowy nie jest dodatkiem \u201edla zaawansowanych\u201d, tylko praktycznym skr\u00f3tem u\u017cywanym wsz\u0119dzie tam, gdzie pojawiaj\u0105 si\u0119 bity, bajty i pami\u0119\u0107. Bez jego rozumienia trudno wygodnie pracowa\u0107 z niskopoziomowym kodem, analiz\u0105 danych czy nawet zwyk\u0142ym frontendem. Najwi\u0119cej daje nie samo zapami\u0119tanie symboli, ale zrozumienie relacji mi\u0119dzy binarnym, dziesi\u0119tnym i hex. \u0179r\u00f3d\u0142o Foto: Freepik<\/p>\n","protected":false},"author":1,"featured_media":1343,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-1342","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kodowanie"],"_links":{"self":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1342"}],"version-history":[{"count":1,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1342\/revisions"}],"predecessor-version":[{"id":1344,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1342\/revisions\/1344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/media\/1343"}],"wp:attachment":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}