Untuk membuat file data berbasis binary kita memerlukan sebuah file yang berextension bin(*.bin). Pada Python membuat file tersebut menggunakan perintah open dengan 'wb' (write binary) mode. Lalu menggunakan perintah 'struct' untuk membuat suatu data menjadi binary.
Dengan perintan 'struct' kita diharuskan untuk memberikan format data terlebih dahulu, sebelumnya melanjutkan, kita lihat dahulu fomatnya.
Untuk fomat string ditulis dengan '4h' yang isi sama dengan 'hhhh'. tempat kosong (spasi) tidak dihitung,
Untuk 's' format karakter, penghitungannya sepanjang bytes-nya, contohnya:
'10s' berarti ada sebuah 10 bytes string.
Dan '10c' berarti ada 10 karakter.Untuk 'p' merupakan 'Pascal String' yang berarti panjang variable string yang pendek disimpan dalam suatu byte yang tetap.
Ada juga format string yang lain, merupakan indikator byte order.
Baris ke 5 dan baris ke 6 adalah sama, beda penulisannya saja.
Dan untuk mendapatkan kembali data dari v1 dan v2, kita gunakan 'struct.unpack()'
--
Dengan perintan 'struct' kita diharuskan untuk memberikan format data terlebih dahulu, sebelumnya melanjutkan, kita lihat dahulu fomatnya.
Format
|
C type
|
Python
|
Keterangan
|
x
|
Pad byte | Tidak ada nilai | |
c
|
char | Bytes | |
b
|
signed char | Integer | Support str utf-8 |
B
|
unsigned char | Integer | |
?
|
_Bool | bool | _Bool type C99, Bila bukan, menjadi char |
h
|
short | Integer | |
H
|
Unsignes short | Integer | |
i
|
int | Integer | |
I
|
Unsigned int | Integer | |
l
|
long | Integer | |
L
|
Unsigned long | Integer | |
q
|
Long long | Integer | Native mode windows -int64 |
Q
|
Unsigned long long | Integer | Native mode windows -int64 |
f
|
float | float | |
D
|
double | float | |
s
|
char[] | Bytes | Support str utf-8 |
p
|
char[] | Bytes | Support str utf-8 |
P
|
void | Integer |
Untuk fomat string ditulis dengan '4h' yang isi sama dengan 'hhhh'. tempat kosong (spasi) tidak dihitung,
Untuk 's' format karakter, penghitungannya sepanjang bytes-nya, contohnya:
'10s' berarti ada sebuah 10 bytes string.
Dan '10c' berarti ada 10 karakter.Untuk 'p' merupakan 'Pascal String' yang berarti panjang variable string yang pendek disimpan dalam suatu byte yang tetap.
Ada juga format string yang lain, merupakan indikator byte order.
Karakter
|
Byte Order | |
@
|
Native | Native |
=
|
Native | Standar |
<
|
little-endian | Standar |
>
|
big-endian | Standar |
!
|
Network (=big-endian) | Standar |
- >>> struct.pack('h',1)
- b'\x01\x00'
- >>> struct.pack('l',1)
- b'\x01\x00\x00\x00'
- >>> v1=struct.pack('iiii',1,2,3,4)
- >>> v2=struct.pack('4i',5,6,7,8)
- >>> v1
- b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00'
- >>> v2
- b'\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00'
- >>>
Baris ke 5 dan baris ke 6 adalah sama, beda penulisannya saja.
Dan untuk mendapatkan kembali data dari v1 dan v2, kita gunakan 'struct.unpack()'
- >>> uv1=struct.unpack('4i',v1)
- >>> uv2=struct.unpack('iiii',v2)
- >>> uv1
- (1, 2, 3, 4)
- >>> uv2
- (5, 6, 7, 8)
- >>>
--
No comments:
Post a Comment