# XBUP - Specifikace bloků: Vyjádření čísel

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje způsob kódování číselných konstant do protokolu XBUP.

O úroveň výše

### Obsah

1. Úvod
2. Základní čísla
2.1. Přirozená čísla
2.2. Celá čísla
2.3. Poměr
3. Složená čísla
3.1. Reálná čísla
3.2. Komplexní čísla
3.3. Zlomky

### 1. Úvod

Následující typy slouží pro vyjádření běžných číselných typů, jako jsou celá čísla, reálná čísla a podobně. Tyto hodnoty je možné vyjádřit v několika formách, především ve formě atributu či datového bloku s pevně definovaným rozsahem hodnot. Atributové bloky jsou taktéž využity v dalších blocích pro definici atributů.

Přidělené indexy katalogu:

- WR17: XBUP/Math/Number

### 2. Základní čísla

Cílem následujících bloků je uložení hodnot známých typů, jako jsou například přirozená či celá čísla. Většinu z těchto typů je možné reprezentovat také jako atribut bloku. Zde uvedené varianty jsou určeny pro základní reprezentaci, případné další možnosti vyjádření, jako například pomocí výpočtu či jiných transformací budou uvedeny jinde.

### 2.1. Přirozená čísla

Typ: XBUP/Math/Number Natural

Přirozená čísla, tedy ve smyslu nezáporných celých čísel s neomezeným rozsahem, je možné ukládat jako jeden blok s vhodným atributem, tedy typ UBNatural.

Jinou možností je použít pro reprezentaci čísel z omezeného rozsahu datový blok pevné délky s obalovacím blokem bez dalších atributů, případně s atributem uvádějícím počet platných bajtů či bitů:

UBNatural ValidBytes

Jsou tedy definovány následující typy s odpovídajícím počtem platných bitů: Natural 8, 16, 24, 32, 48, 64... Interval hodnot typu Natural X je pak <0 .. (2^X)-1>. Režie pro uložení jedné hodnoty Natural je v tomto případě minimálně 6 bajtů. Příklad:

Data | Popis
03 | Velikost atributové části
03 | Velikost bloku
XX | UBNatural Group = XBUP/Math/Number
XX | UBNatural Block = Natural 16
01 | Velikost atributové části
02 | Velikost bloku
YY YY | Vlastní hodnota

### 2.2. Celá čísla

Typ: XBUP/Math/Number Integer

Základní celé číslo je kódováno obdobně jako výše uvedená hodnota, pouze je v případě atributu či datového bloku použit dvojkový doplňkový kód, který posouvá platný interval o polovinu do záporných hodnot, tedy pro Integer X je pak interval <-(2^(X-1)) .. (2^(X-1))-1>.

### 2.3. Poměr

Typ: XBUP/Math/Number Ratio

Tento typ umožňuje realizovat reálná čísla v rozsahu <0..1> s dvojkovou přesností a konečným dvojkovým rozvojem.

### 3. Složená čísla

Složená čísla mají typicky větší mohutnost než spočetné množiny, proto jsou jejich rozsahy omezeny a hodnoty jsou realizovány pomocí více hodnot základních, případně s využitím vhodného přístupu přetvořeny na základní hodnotu.

### 3.1. Reálná čísla

Typ: XBUP/Math/Number Real

Reálná čísla jsou pro uložení omezena na čísla s konečným dvojkovým rozvojem a je tam možné je realizovat jako dvojici celých čísel, dostupných pod označením:

UBReal Value

Dalšími možnostmi jsou například použití jedné hodnoty pro některé podmnožiny reálných čísel, jako například UBRatio atp. Samozřejmě je také možné použít datový blok, například s reprezentací hodnoty v kódu IEEE 754.

### 3.2. Komplexní čísla

Typ: XBUP/Math/Number Complex, UBComplex

Komplexní čísla jsou realizována jakožto dvojice reálných čísel pro racionální a iracionální část čísla.

### 3.3. Zlomky

Zlomky...

Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2009-01-30