[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.6.6.3 Interpreting Bytevector Contents as Integers
The contents of a bytevector can be interpreted as a sequence of integers of any given size, sign, and endianness.
(let ((bv (make-bytevector 4))) (bytevector-u8-set! bv 0 #x12) (bytevector-u8-set! bv 1 #x34) (bytevector-u8-set! bv 2 #x56) (bytevector-u8-set! bv 3 #x78) (map (lambda (number) (number->string number 16)) (list (bytevector-u8-ref bv 0) (bytevector-u16-ref bv 0 (endianness big)) (bytevector-u32-ref bv 0 (endianness little))))) ⇒ ("12" "1234" "78563412")
The most generic procedures to interpret bytevector contents as integers are described below.
- Scheme Procedure: bytevector-uint-ref bv index endianness size
- C Function: scm_bytevector_uint_ref (bv, index, endianness, size)
Return the size-byte long unsigned integer at index index in bv, decoded according to endianness.
- Scheme Procedure: bytevector-sint-ref bv index endianness size
- C Function: scm_bytevector_sint_ref (bv, index, endianness, size)
Return the size-byte long signed integer at index index in bv, decoded according to endianness.
- Scheme Procedure: bytevector-uint-set! bv index value endianness size
- C Function: scm_bytevector_uint_set_x (bv, index, value, endianness, size)
Set the size-byte long unsigned integer at index to value, encoded according to endianness.
- Scheme Procedure: bytevector-sint-set! bv index value endianness size
- C Function: scm_bytevector_sint_set_x (bv, index, value, endianness, size)
Set the size-byte long signed integer at index to value, encoded according to endianness.
The following procedures are similar to the ones above, but specialized to a given integer size:
- Scheme Procedure: bytevector-u8-ref bv index
- Scheme Procedure: bytevector-s8-ref bv index
- Scheme Procedure: bytevector-u16-ref bv index endianness
- Scheme Procedure: bytevector-s16-ref bv index endianness
- Scheme Procedure: bytevector-u32-ref bv index endianness
- Scheme Procedure: bytevector-s32-ref bv index endianness
- Scheme Procedure: bytevector-u64-ref bv index endianness
- Scheme Procedure: bytevector-s64-ref bv index endianness
- C Function: scm_bytevector_u8_ref (bv, index)
- C Function: scm_bytevector_s8_ref (bv, index)
- C Function: scm_bytevector_u16_ref (bv, index, endianness)
- C Function: scm_bytevector_s16_ref (bv, index, endianness)
- C Function: scm_bytevector_u32_ref (bv, index, endianness)
- C Function: scm_bytevector_s32_ref (bv, index, endianness)
- C Function: scm_bytevector_u64_ref (bv, index, endianness)
- C Function: scm_bytevector_s64_ref (bv, index, endianness)
Return the unsigned n-bit (signed) integer (where n is 8, 16, 32 or 64) from bv at index, decoded according to endianness.
- Scheme Procedure: bytevector-u8-set! bv index value
- Scheme Procedure: bytevector-s8-set! bv index value
- Scheme Procedure: bytevector-u16-set! bv index value endianness
- Scheme Procedure: bytevector-s16-set! bv index value endianness
- Scheme Procedure: bytevector-u32-set! bv index value endianness
- Scheme Procedure: bytevector-s32-set! bv index value endianness
- Scheme Procedure: bytevector-u64-set! bv index value endianness
- Scheme Procedure: bytevector-s64-set! bv index value endianness
- C Function: scm_bytevector_u8_set_x (bv, index, value)
- C Function: scm_bytevector_s8_set_x (bv, index, value)
- C Function: scm_bytevector_u16_set_x (bv, index, value, endianness)
- C Function: scm_bytevector_s16_set_x (bv, index, value, endianness)
- C Function: scm_bytevector_u32_set_x (bv, index, value, endianness)
- C Function: scm_bytevector_s32_set_x (bv, index, value, endianness)
- C Function: scm_bytevector_u64_set_x (bv, index, value, endianness)
- C Function: scm_bytevector_s64_set_x (bv, index, value, endianness)
Store value as an n-bit (signed) integer (where n is 8, 16, 32 or 64) in bv at index, encoded according to endianness.
Finally, a variant specialized for the host’s endianness is available
for each of these functions (with the exception of the u8
accessors, for obvious reasons):
- Scheme Procedure: bytevector-u16-native-ref bv index
- Scheme Procedure: bytevector-s16-native-ref bv index
- Scheme Procedure: bytevector-u32-native-ref bv index
- Scheme Procedure: bytevector-s32-native-ref bv index
- Scheme Procedure: bytevector-u64-native-ref bv index
- Scheme Procedure: bytevector-s64-native-ref bv index
- C Function: scm_bytevector_u16_native_ref (bv, index)
- C Function: scm_bytevector_s16_native_ref (bv, index)
- C Function: scm_bytevector_u32_native_ref (bv, index)
- C Function: scm_bytevector_s32_native_ref (bv, index)
- C Function: scm_bytevector_u64_native_ref (bv, index)
- C Function: scm_bytevector_s64_native_ref (bv, index)
Return the unsigned n-bit (signed) integer (where n is 8, 16, 32 or 64) from bv at index, decoded according to the host’s native endianness.
- Scheme Procedure: bytevector-u16-native-set! bv index value
- Scheme Procedure: bytevector-s16-native-set! bv index value
- Scheme Procedure: bytevector-u32-native-set! bv index value
- Scheme Procedure: bytevector-s32-native-set! bv index value
- Scheme Procedure: bytevector-u64-native-set! bv index value
- Scheme Procedure: bytevector-s64-native-set! bv index value
- C Function: scm_bytevector_u16_native_set_x (bv, index, value)
- C Function: scm_bytevector_s16_native_set_x (bv, index, value)
- C Function: scm_bytevector_u32_native_set_x (bv, index, value)
- C Function: scm_bytevector_s32_native_set_x (bv, index, value)
- C Function: scm_bytevector_u64_native_set_x (bv, index, value)
- C Function: scm_bytevector_s64_native_set_x (bv, index, value)
Store value as an n-bit (signed) integer (where n is 8, 16, 32 or 64) in bv at index, encoded according to the host’s native endianness.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.