R6RS:翻訳:Standard Libraries:2.3 Operations on bytes and octets

R6RS:翻訳:Standard Libraries:2.3 Operations on bytes and octets

2.3 バイトとオクテットに対する操作

[procedure] (bytevector-u8-ref bytevector k)

[procedure] (bytevector-s8-ref bytevector k)

kbytevector の有効な添え字でなければならない。

bytevector-u8-ref 手続きは bytevector の添え字 k のバイトをオクテットとして返す。

bytevector-s8-ref 手続きは bytevector の添え字 k のバイトを(符号付き)バイトとして返す。

(let ((b1 (make-bytevector 16 -127))
      (b2 (make-bytevector 16 255)))
  (list
    (bytevector-s8-ref b1 0)
    (bytevector-u8-ref b1 0)
    (bytevector-s8-ref b2 0)
    (bytevector-u8-ref b2 0))) 
                ⇒ (-127 129 -1 255)

[procedure] (bytevector-u8-set! bytevector k octet)

[procedure] (bytevector-s8-set! bytevector k byte)

kbytevector の有効な添え字でなければならない。

bytevector-u8-set! 手続きは bytevectork 番目の要素に octet を格納する。

bytevector-s8-set! 手続きは byte の 2 の補数表現を bytevectork 番目の要素に格納する。

この手続きは両方とも未規定値を返す。

(let ((b (make-bytevector 16 -127)))

  (bytevector-s8-set! b 0 -126)
  (bytevector-u8-set! b 1 246)

  (list
    (bytevector-s8-ref b 0)
    (bytevector-u8-ref b 0)
    (bytevector-s8-ref b 1)
    (bytevector-u8-ref b 1))) 
                ⇒ (-126 130 -10 246)

[procedure] (bytevector->u8-list bytevector)

[procedure] (u8-list->bytevector list)

list はオクテットのリストでなければならない。

bytevector->u8-list 手続きは bytevector ベクタ中のオクテットを同一の順序で並べたリストを新たに割り当てて返す。

u8-list->bytevector 手続きは、要素がリスト list と同一の順序のバイトベクタを新たに割り当てて返す。これは list->vector の類似手続きである。

More ...