Hodnota binary! je tvořena řadou číselných znaků zvolené číselné soustavy - nikoliv jak název napovídá - pouze dvojkové soustavy.
Typ binary! je člen typesetů default! a series!
Hodnoty typu binary lze vytvořit s použitím literálové syntaxe nebo při runtime s použitím konstruktoru make nebo konverzí to.
Obecné schema deklarace:
<binary-literal> ::= 2#{<base2-char>*} |
16#{<hex-char>*} OR #{<hex-char>*} |
64#{<base64-char>*}Hodnota base2 se skládá z jedné či více skupin osmi číslic 0-1. Skupiny lze oddělovat mezerou
>> 2#{11111111}
== #{FF}
>> 2#{11110000 00001111}
== #{F00F}Hodnota base16 je hexadecimální formát čísla a skládá se ze dvou znaků či skupin dvou znaků 0-9 A-F a-f
>> 16#{2A}
== #{2A}
>> 16#{2A FF}
== #{2AFF}Tento formát je implicitní a lze jej psát i bez označení báze.
>> #{2A}
== #{2A}Lichý počet znaků vyvolá chybu:
>> 16#{2AF}
*** Syntax Error: invalid binary! at "#{2AF}"
*** Where: do
*** Stack: loadHodnota base64 se skládá ze čtyř znaků nebo ze skupin čtyř znaků z množiny 0-9 A-Z a-z +/.
>> 64#{2AQQ}
== #{D80410}
>> 64#{2A+/}
== #{D80FBF}Méně než čtyři znaky nebo lichý počet znaků vyvolá chybu. Potřebnou délku lze vytvořit doplněním (maximálně) dvěma rovnítky =.
>> 64#{2A}
*** Syntax Error: invalid binary! at "64#{2A}"
*** Where: do
*** Stack: load
>> 64#{2A2=}
== #{D80D}
>> 64#{D75q31==}
== #{0FBE6ADF}>> help enbase
USAGE:
ENBASE value
DESCRIPTION:
Encodes a string into a binary-coded string (BASE-64 default).
ENBASE is a native! value.
ARGUMENTS:
value [binary! string!] "If string, will be UTF8 encoded."
REFINEMENTS:
/base => Binary base to use.
base-value [integer!] "The base to convert from: 64, 58, 16, or 2.">> enbase/base "I" 64
== "SQ=="
>> enbase "I" ; báze 64 je pro funkci enbase implicitní
== "SQ==">> help debase
USAGE:
DEBASE value
DESCRIPTION:
Decodes binary-coded string (BASE-64 default) to binary value.
DEBASE is a native! value.
ARGUMENTS:
value [string!] "The string to decode."
REFINEMENTS:
/base => Binary base to use.
base-value [integer!] "The base to convert from: 64, 58, 16, or 2.">> debase "SQ=="
== #{49}
>> debase/base "SQ==" 64
== #{49}
>> to string! debase/base "SQ==" 64
== "I"Na hodnotu typu binary! lze aplikovat všechny komparační operátory: =, ==, <>, >, <, >=, <=, =?. Navíc jsou podporovány funkce min a max.
Přímým dotazem:
>> binary? #{2A}
== trueObecným dotazem:
>> type? #{2A}
== binary!