Jak używać
- Wybierz „Koduj”, aby zamienić tekst na liczby dziesiętne, lub „Dekoduj”, aby zamienić liczby z powrotem na tekst.
- Wpisz lub wklej dane wejściowe albo otwórz plik. Wynik aktualizuje się na bieżąco podczas pisania.
- Wybierz separator liczb: „Spacja”, „Przecinek” lub „Nowy wiersz”.
- Skopiuj liczby lub pobierz je jako plik.
Dziesiętne wartości bajtów i kody ASCII
Każdy znak jest przechowywany w komputerze jako jeden lub więcej bajtów, a bajt to po prostu liczba od 0 do 255. To narzędzie zapisuje każdą z tych liczb w zwykłym zapisie dziesiętnym. W przypadku tekstu angielskiego są to dobrze znane kody ASCII: wielkie litery mają kody od 65 do 90, małe litery od 97 do 122, cyfry od 0 do 9 – od 48 do 57, a spacja ma kod 32. Znaki sterujące leżą poniżej 32, na przykład 10 to znak nowego wiersza (line feed), a 13 to powrót karetki (carriage return).
Wynik to ta sama lista, którą zwraca funkcja ord() w Pythonie lub odczyt tablicy Uint8Array w JavaScripcie. To wygodny sposób na wykrycie w ciągu niewidocznych znaków, znaków końca wiersza lub znacznika kolejności bajtów (BOM).
Jedna liczba na bajt, a nie jedna duża liczba
Konwersja odbywa się bajt po bajcie: dwuliterowe słowo staje się dwiema liczbami, a nie jedną liczbą całkowitą. Wartości powyżej 127 nigdy nie występują w tekście ASCII. W UTF-8 pojawiają się w ciągach od dwóch do czterech bajtów, które razem tworzą jeden znak, dlatego litera z akcentem, polska litera ze znakiem diakrytycznym czy znak chiński dają kilka liczb. Aby uzyskać jedną wartość na znak w tekście zachodnioeuropejskim, wybierz ISO-8859-1, w którym wartość każdego bajtu jest równa punktowi kodowemu Unicode danego znaku, lub Windows-1252; dla tekstu polskiego wybierz ISO-8859-2.
Aby zamiast tego przekonwertować pojedynczą liczbę między systemami liczbowymi, na przykład 255 na system szesnastkowy, użyj konwertera systemów liczbowych. Aby zobaczyć te same bajty w innym zapisie, wypróbuj zapis szesnastkowy lub binarny.
Dziesiętne wartości bajtów w kodzie
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
Specyfikacja
| Alfabet | 0-9 |
|---|---|
| Rozmiar wyniku | Od 1 do 3 cyfr na bajt plus separatory |
| Dopełnienie | Brak |
| Standard | Dziesiętne wartości bajtów |
| Rozróżnia wielkość liter | Nie |
Przykłady
| Wejście (UTF-8) | Wyjście |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
Najczęściej zadawane pytania
Jaki jest dziesiętny kod ASCII litery A?
Wielka litera A ma kod 65, a mała litera a – 97, zarówno w ASCII, jak i w UTF-8. Każda kolejna litera ma kod większy o jeden, więc Z to 90, a z to 122.
Czy można dekodować liczby dziesiętne bez separatorów?
Nie. Ciąg cyfr taki jak 72105 można podzielić na więcej niż jeden sposób, dlatego dekoder wymaga liczb oddzielonych spacjami, przecinkami, średnikami lub podziałami wierszy. Zera wiodące są dozwolone.
Dlaczego liczby większe niż 255 powodują błąd?
Bajt przechowuje wartości od 0 do 255. Większe liczby, takie jak punkt kodowy Unicode 8364 znaku euro, nie są wartościami bajtów. Wpisz sam znak i zakoduj go, aby zobaczyć jego bajty, na przykład w UTF-8.
Dlaczego jeden znak zamienia się w kilka liczb?
UTF-8 zapisuje znaki spoza ASCII jako dwa, trzy lub cztery bajty, a każdy bajt staje się osobną liczbą. Wybierz jednobajtowy zestaw znaków, taki jak Windows-1252, jeśli potrzebna jest jedna liczba na każdy znak zachodnioeuropejski, lub ISO-8859-2 dla tekstu polskiego.