structure與byte陣列相互轉換

2021-04-02 10:13:50 字數 941 閱讀 2115

public type us

a as long

b as double    

c as string * 48

end type

public data1() as us

public outarray() as byte

如果將 data1轉換成 byte陣列呢?

還有如何恢復byte陣列到 data1中呢?

——————————————————————————

用copymemory來做.

例子:private declare sub copymemory lib "kernel32" alias "rtlmovememory" (destination as any, source as any, byval length as long)

private type us

a as long

b as double

c as string * 48

end type

private sub command1_click()

dim data1  as us

dim outarray() as byte

data1.a = 5

data1.b = 8

data1.c = "aa"

redim outarray(len(data1))

copymemory outarray(0), data1, len(data1) '將結構的資訊傳入位元組陣列中.

msgbox ubound(outarray)

msgbox outarray(0)

dim abc as us

copymemory abc, outarray(0), ubound(outarray) '將位元組陣列還原到結構中

msgbox abc.c

end sub

bit與byte 進位制

背景 計算機中的原碼為什麼用8位數來表示?詳述 網上查到了一些大神的資料是這樣寫的 這就要從計算機的發展史來說了,在早期,有一種 一位計算機 也就是每次只能處理1位二進位制數的計算機。之後 四位機 八位機 十六位機 等等。資料處理能力逐步增強。在 八位機 興盛期間,各項計算機的理論基本成型,確立了8...

int char double與byte相互轉換

int char double與byte相互轉換的程式 整數到位元組陣列的轉換 public static byte inttobyte int number return b 位元組陣列到整數的轉換 public static int bytetoint byte b if b 3 0 最後一個之...

byte與各種編碼

byte byte是8位2進位制,所有的資料都是由byte組成,如 是一連串的byte ascii字元 a 是一個byte 可以說byte是我們的原始資料 編碼 如下問題 這是2個byte 01100010 00010001 它代表了什麼?答案 如果沒有指明編碼,那他什麼都不代表 在ascii編碼規...

位元組(byte)與位元(bit)

1 bit 位 位是計算機中儲存資料的最小單位,指二進位制數中的一個位數,其值為 0 或 1 2 byte 位元組 位元組是計算機儲存容量的基本單位,一個位元組由8位二進位制陣列成。在計算機內部,一個位元組可以表示一個資料,也可以表示一個英文字母,兩個位元組可以表示一個漢字。1b 8bit 簡單說就...

golang string與byte的區別

為啥string和byte型別轉換需要一定的代價?為啥內建函式copy會有一種特殊情況copy dst byte,src string int?string和byte,底層都是陣列,但為什麼byte比string靈活,拼接效能也更高 動態字串拼接效能對比 今天看了原始碼 了一下。以下所有觀點都是個人...