?? b980118.gb_
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>進階篇:整數在記憶體內部的排列方式?</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
<META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#FF0000">
<H2 ALIGN=CENTER><A HREF="vbex.htm">VB5 實戰講座</A></H2>
<H3 ALIGN=CENTER><A HREF="../vbweeks.htm">每周一問</A>: 挑戰您的 VB 功力 (進階篇, 98/01/18)</H3>
<H2>
<HR WIDTH="100%"></H2>
<TABLE WIDTH="100%" >
<TR VALIGN=TOP>
<TD NOWRAP>Q:</TD>
<TD>某一長整數(Long)其值為 &H<FONT COLOR="#FF0000">01020304</FONT>,
試問它在記憶體內部的結構是 (a) 還是 (b):
<UL>
<PRE><IMG SRC="B980118.gif" HEIGHT=93 WIDTH=141></PRE>
</UL>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>A:</TD>
<TD>結果是 (b), 以下是證明的方法:
<P>1. 宣告以下兩種自訂型別:</P>
<UL>
<PRE><FONT SIZE=+1>Private Type tLong
L As Long
End Type
Private Type t4Bytes
b4(0 To 3) As Byte
End Type</FONT></PRE>
</UL>
<P>2. 撰寫以下程式進行測試:</P>
<UL>
<PRE><FONT SIZE=+1>Dim X1 As tLong
Dim X2 As t4Bytes
X1.L = &H01020304
LSet X2 = X1 <FONT COLOR="#008000">' 將 X1 的記憶體復制到 X2
</FONT>Debug.Print X2.b4(0), X2.b4(1), X2.b4(2), X2.b4(3)</FONT></PRE>
<P>結果印出: 4, 3, 2, 1</P>
</UL>
<P><B><FONT COLOR="#FF0000"><FONT SIZE=+1>特別說明</FONT></FONT></B>:
以上程式最有意思的地方是 LSet 敘述, 此一敘述可以直接復制「不同自訂型別」(如以上的
tLong 及 t4Bytes 自訂型別)的資料。</P>
<P>為了檢驗某一資料的內容(如本例的 Long), 我們可以宣告一個與該資料等長度的
Byte 陣列(如本例的 b4(0 To 3) As Byte), 然後再利用 LSet 將資料復制到 Byte
陣列中, 然後逐一檢驗資料每一個 Byte 的內容。</P>
</TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -