📄 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 + -