User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:byte [2019/07/14 17:00]
cl:functions:byte [2019/10/17 13:00] (current)
Line 1: Line 1:
 +====== Function BYTE, BYTE-SIZE, BYTE-POSITION ======
 +
 +====Syntax====
 +  * **byte** //size position// → //​bytespec//​
 +  * **byte-size ** //​bytespec//​ → //size// **byte-position** //​bytespec//​ → //​position//​
 +
 +====Arguments and Values====
 +  * //size//, //​position//​ - a non-negative //​[[CL:​Glossary:​integer]]//​.
 +  * //​bytespec//​ - a //​[[CL:​Glossary:​byte specifier]]//​.
 +
 +====Description====
 +**byte** returns a //​[[CL:​Glossary:​byte specifier]]//​ that indicates a //​[[CL:​Glossary:​byte]]//​ of width //size// and whose bits have weights ''​2^<​sup>​(//​position//​ + //size// - 1)</​sup>''​ through ''​2^//​position//'',​ and whose representation is //​[[CL:​Glossary:​implementation-dependent]]//​.
 +
 +**byte-size** returns the number of bits specified by //​bytespec//​.
 +
 +**byte-position** returns the position specified by //​bytespec//​.
 +
 +====Examples====
 +<​blockquote> ​
 +([[CL:​Macros:​defparameter]] *b* (byte 100 200)) <​r>​*B*</​r>​
 +*b* <​r>#<​BYTE-SPECIFIER size 100 position 200> </r>
 +(byte-size *b*) <​r>​100 </r>
 +(byte-position *b*) <​r>​200</​r>​
 +</​blockquote>​
 +
 +====Affected By====
 +None.
 +
 +====Exceptional Situations====
 +None.
 +
 +====See Also====
 +  * **[[CL:​Functions:​ldb|Function LDB]]**
 +  * **[[CL:​Functions:​dpb|Function DPB]]**
 +
 +====Notes====
 +<​blockquote>​
 +(byte-size (byte //j// //k//)) ≡ //j//
 +(byte-position (byte //j// //k//)) ≡ //k//
 +</​blockquote>​
 +
 +A //​[[CL:​Glossary:​byte]]//​ of //​[[CL:​Glossary:​size]]//​ of ''​0''​ is permissible;​ it refers to a //​[[CL:​Glossary:​byte]]//​ of width zero. For example:
 +
 +<​blockquote>​
 +([[CL:​Functions:​ldb]] (byte 0 3) #o7777) → 0 
 +([[CL:​Functions:​dpb]] #o7777 (byte 0 3) 0) → 0
 +</​blockquote>​