---
title: "Kódovanie bajtov a kontrolné súčty"
description: "Kódovanie bajtov v skripte TapHome: Base64 a base64url binárnych dát, hexadecimálny text, CRC16 vo variante Modbus, XMODEM, CCITT-FALSE alebo KERMIT a CRC32."
url: "https://taphome.com/sk/docs/script/byte-encodings/"
language: sk
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["byte-encodings","packet-parser","modbus","scripting-language"]
  questions: ["Ako v skripte TapHome dekódujem binárne dáta v Base64?","Ako v skripte TapHome prevediem bajty na hexadecimálny text?","Ako v skripte vypočítam CRC16 pre Modbus RTU?","Akú verziu Core potrebujú funkcie kódovania bajtov?"]
---

# Kódovanie bajtov a kontrolné súčty

Funkcie skriptu TapHome TOBASE64 a FROMBASE64 (aj base64url), TOHEX a FROMHEX, CRC16 a CRC32 — bajty ako text a späť a kontrolné súčty rámcov.

Posledná aktualizácia: 2026-11-06

`TOBASE64`, `FROMBASE64`, `TOHEX`, `FROMHEX`, `CRC16` a `CRC32` prevádzajú bajty na text a späť a počítajú kontrolné súčty, zvyčajne spolu so [šifrovacími a hašovacími funkciami](https://taphome.com/sk/docs/script/encryption-and-hashes/). Iba zostavujú hodnoty, takže fungujú v každom skripte. Všetky potrebujú TapHome Next 2026.1.40991+.

`TOBASE64`, `TOHEX`, `CRC16` a `CRC32` prijímajú bajtové dáta rovnako ako šifrovacie funkcie: `collection<uint8>`, blob alebo reťazec, použitý ako bajty ISO-8859-1 (pre UTF-8 odovzdajte `TOBYTES(text, "utf-8")`). `TOBASE64` a `TOHEX` vrátia reťazec, `CRC16` a `CRC32` číslo `uint`; `FROMBASE64` a `FROMHEX` prijímajú text a vrátia `collection<uint8>`.

## TOBASE64, FROMBASE64

`TOBASE64` prevedie bajtové dáta na text Base64, `FROMBASE64` prevedie text Base64 späť na bajty.

```text
TOBASE64(data [, variant])
FROMBASE64(text [, variant])
```

`variant` je `"standard"` (predvolený) alebo `"url"`, na veľkosti písmen nezáleží. `"url"` je base64url (RFC 4648 §5), ktorý namiesto `+` a `/` používa `-` a `_`. `TOBASE64` s `"url"` vynechá doplnenie `=`, ako to očakáva JWT a väčšina webových API (v Pythone `base64.urlsafe_b64encode(data).rstrip(b"=")`); `FROMBASE64` s `"url"` prijme text s doplnením aj bez neho.

**Návratová hodnota** — `TOBASE64` reťazec, `FROMBASE64` `collection<uint8>`.

**Poznámky** — [ENCODE a DECODE](https://taphome.com/sk/docs/script/data-type-conversions/#encode) s `"base64"` prechádzajú cez text v UTF-8, takže bajty nad `0x7F` sa v nich pokazia. Zašifrované a iné binárne dáta prevádzajte cez `TOBASE64` a `FROMBASE64`.

**Príklad**

```taphome
# štandardné Base64 dvoch bajtov
TOBASE64(FROMHEX("fbff"));
# Result: "+/8="
# base64url: bez výplne, - a _ namiesto + a /
TOBASE64(FROMHEX("fbff"), "url");
# Result: "-_8"
# dekódovanie base64url späť na hex text
TOHEX(FROMBASE64("-_8", "url"));
# Result: "fbff"
```

**Chyby** — *TOBASE64 Unknown variant. Valid values are 'standard', 'url'* (`FROMBASE64` uvádza svoj názov); *FROMBASE64 - '+' and '/' are not base64url characters, leave the "url" argument out for standard Base64*; *FROMBASE64 - argument must be a string*; *The provided text does not have the base64 format.*

**Dostupnosť** — TapHome Next 2026.1.40991+.

## TOHEX, FROMHEX

`TOHEX` vráti bajtové dáta ako hexadecimálny text malými písmenami, `FROMHEX` prevedie hexadecimálny text späť na bajty.

```text
TOHEX(data)
FROMHEX(text)
```

**Poznámky**

- `FROMHEX` prijíma číslice veľkými aj malými písmenami a medzery medzi nimi, ako `bytes.fromhex` v Pythone. Každý iný znak vrátane predpony `0x` alebo oddeľovačov `:` je chyba, rovnako nepárny počet číslic. Prázdny reťazec dá prázdnu kolekciu.
- Na rozdiel od [BYTECOLLECTION](https://taphome.com/sk/docs/script/text-string-and-byte-array/#bytecollection) z hexadecimálneho textu, ktorá iné znaky potichu ignoruje a má limit 2048 bajtov, nemá `FROMHEX` obmedzenie dĺžky, takže prevedie späť všetko, čo vytvorila `TOHEX`.

**Príklad**

```taphome
# tri bajty ako Base64
TOBASE64(FROMHEX("ff0080"));
# Result: "/wCA"
# Base64 späť na bajty, potom hex text
TOHEX(FROMBASE64("/wCA"));
# Result: "ff0080"
# veľké písmená a medzery sú povolené
TOHEX(FROMHEX("FF 00 80"));
# Result: "ff0080"
```

**Chyby** — *FROMHEX - invalid hex digit 'x'* (predponu alebo oddeľovače odstráňte funkciou `REPLACE`); *FROMHEX - the number of hex digits must be even, it is N*; *FROMHEX - argument must be a string*.

**Dostupnosť** — TapHome Next 2026.1.40991+.

## CRC16, CRC32

`CRC16` vráti 16-bitový kontrolný súčet CRC bajtových dát, `CRC32` súčet CRC-32 podľa zlib, Ethernetu a ZIP (v Pythone `zlib.crc32`).

```text
CRC16(data [, variant])
CRC32(data)
```

`variant` vyberá parametre funkcie `CRC16`, na veľkosti písmen nezáleží. Kontrolná hodnota je CRC textu `"123456789"`:

| `variant` | Kontrolná hodnota | Známy aj ako |
|---|---|---|
| `"MODBUS"` (predvolený) | `0x4B37` | rámce Modbus RTU |
| `"XMODEM"` | `0x31C3` | `binascii.crc_hqx(data, 0)` v Pythone |
| `"CCITT-FALSE"` | `0x29B1` | `"IBM-3740"` sa prijíma ako ten istý variant |
| `"KERMIT"` | `0x2189` | |

Kontrolná hodnota `CRC32` je `0xCBF43926` (3421780262).

**Návratová hodnota** — číslo `uint`, nie bajty. Ak chcete kontrolný súčet vložiť do rámca, zabaľte ho funkciou [PACKVALUE](https://taphome.com/sk/docs/script/binary-data/#packvalue) v poradí bajtov, ktoré protokol očakáva; Modbus RTU posiela nižší bajt ako prvý.

**Príklad**

```taphome
TOSTRING(CRC16(FROMHEX("0103000A0001")), "X4");
# Result: "08A4"
TOSTRING(CRC32("123456789"), "X8");
# Result: "CBF43926"
```

**Príklad — pripojenie kontrolného súčtu Modbus RTU**

```taphome
# bajty rámca z hex textu
VAR frame := FROMHEX("01 03 00 0A 00 01");
# prázdny buffer 2 bajtov pre kontrolný súčet
VAR crc := BYTECOLLECTION(2);
# zbalenie CRC16 s nižším bajtom prvým
PACKVALUE(crc, 0, LittleEndianUint16, CRC16(frame));
# pripojenie kontrolného súčtu k rámcu
APPEND(frame, crc);
# Result: frame is 01 03 00 0A 00 01 A4 08
```

**Chyby** — *CRC16 Unknown variant. Valid values are 'MODBUS', 'XMODEM', 'CCITT-FALSE', 'KERMIT'*.

**Dostupnosť** — TapHome Next 2026.1.40991+.

**Pozrite aj** — [Šifrovanie a haše](https://taphome.com/sk/docs/script/encryption-and-hashes/), [Binárne dáta](https://taphome.com/sk/docs/script/binary-data/), [Konverzie dátových typov](https://taphome.com/sk/docs/script/data-type-conversions/).
