首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VB6中将Double拆分为Long loword和Long hiword

在VB6中,可以使用以下方法将Double类型拆分为Long类型的loword和hiword:

代码语言:txt
复制
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Sub SplitDouble(ByVal value As Double, ByRef loword As Long, ByRef hiword As Long)
    CopyMemory loword, value, 4
    CopyMemory hiword, value + 4, 4
End Sub

上述代码中,我们使用了API函数CopyMemory来实现内存拷贝操作。首先,我们声明了CopyMemory函数,然后定义了SplitDouble子过程。SplitDouble接受一个Double类型的值作为输入,并通过引用参数lowordhiword返回拆分后的结果。

SplitDouble中,我们首先使用CopyMemory将前4个字节(32位)的数据从Double类型的值中拷贝到loword变量中,然后将后4个字节(32位)的数据拷贝到hiword变量中。这样就完成了将Double类型拆分为两个Long类型的操作。

使用示例:

代码语言:txt
复制
Dim value As Double
Dim loword As Long
Dim hiword As Long

value = 1234.5678
SplitDouble value, loword, hiword

Debug.Print "loword: " & loword
Debug.Print "hiword: " & hiword

输出结果:

代码语言:txt
复制
loword: 10794
hiword: 48059

这样,我们就成功将Double类型的值拆分为了两个Long类型的loword和hiword。

请注意,以上代码仅适用于VB6环境,不适用于其他编程语言或版本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【读书笔记】Windows程序设计5

    这两个值分别是字符基线智商之下的最大高度。...); 其中,设备环境句柄指的是窗口句柄为hwnd的窗口客户区,从GetDC函数返回的句柄可以整个客户区绘制,并且GetDCReleaseDC函数并不使任何客户区的无效区域变为有效。...如果DefWindowProc处理WM_NCHITTEST消息之后返回HTNOWHERE,那么程序就能有效地阻止系统向窗口发送所有客户区非客户区鼠标消息。...当用户菜单项之间移动光标或鼠标时,程序可以收到许多WM_MENUSELECT消息,WM_MENUSELECT的参数如下 LOWORD(wParam):所选的菜单项:菜单ID或弹出菜单的索引 HIWORD...(lParam), HIWORD(lParam), TRUE); return 0; case WM_INITMENUPOPUP: //Edit菜单中位置索引为

    2.4K10

    【JavaSE专栏5】Java 基本数据类型取值范围

    计算机中,每一块内存都被划分为一个个最小存储单元。 比特(位)是计算机中最基本的单位,位是最基本的概念,计算机中,由于只有逻辑0逻辑1的存在,即每一个逻辑0或者1便是一个位....微型计算机中,用字节来表示存储器的存储容量。 ---- 1.2 Java 基本数据类型 Java 中有着 3 大类基本数据类型,分别是数值型、字符型布尔型。...其中数值型分为整数的 byte、short、int、long浮点数 float、double,共计 8 种,如下图所示。...包装类有着不同的存储位置、初始值使用方式。 包装类的概念、使用方法自动装箱箱在后续课时中会讲到。 ---- 2.2 取值范围验证 验证之前首先展示结果,如下图所示。...在下节课时中将讲解 Java 的基本类型转换,自动箱的知识。

    20820

    【网络编程】异步选择模型

    校验版本 创建SOCKET 绑定地址与端口 开始监听 异步选择 异步选择 int WSAAsyncSelect( SOCKET s, HWND hWnd, u_int wMsg, long...g_count - 1]; g_count--; break; } } } break; } //具体消息 switch (LOWORD...(lParam) 具体的消息种类 LOWORD(lParam) 窗口上打印数据 textout 优化 每个窗口维护一定的消息,然后创建多线程,每个线程一个窗口,每个窗口投递一定数量的客户端...问题 一次处理过程中,客户端产生多次send,服务器会产生多次接收消息,第一次接收消息会收完所有信息。 总结 事件选择模型异步选择模型是解决select模型中select()同步阻塞的问题的。...重叠I/O模型完成端口模型将recv(send)操作变成异步的 ,从而这个网络模型没有阻塞。全都顺利执行下来,且执行效率非常高。

    35310

    使用鼠标

    一、鼠标的介绍     鼠标是计算机的输入设备之一, 图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、...按其工作原理及其内部结构的不同可以分为机械式,光机式光电式。     这里我们不讨论鼠标的硬件构造, 更多关于鼠标的硬件知识请自行查阅相关资料。 1>....其中低位字节表示x坐标, 高位字节表示y坐标, 利用LOWORDHIWORD宏可以取得这些坐标值, 这里获取的坐标指的是相对于窗口客户区的坐标。...wParam 判断鼠标在窗口的位置, 这里获取鼠标位置是通过 LOWORD HIWORD 宏完成的, 还有两个功能相同的宏也可以用来获取lParam中的鼠标信息, 他们是 GET_X_LPARAM...宏 GET_Y_LPARAM, 不过这两个宏是定义 WINDOWSX.H 头文件中的, 如果要使用这两个宏需要将 WINDOWSX.H 包含进来。

    2.7K100

    包装类装箱

    Java的设计之中,一直提倡一个原则:一切皆对象,这个原则本身有一个漏洞 —— 基本数据类型不是对象,所以这个原则就出现了问题。那么如果说现在这个问题由我们来解决,该如何做呢?...(Long)、float(Float)、doubleDouble)、boolean(Boolean)、char(Character),而这八种包装类又分为两大阵营: · 数值型(Number子类):Byte...、Short、Integer、Float、DoubleLong; · 对象型(Object子类):Boolean、Character。...var = new Double(15.5) ; // 装箱 double result = var.doubleValue() ; // 箱 System.out.println(result...* result) ; } } 到了JDK 1.5之后,Java提供了自动的装箱箱机制,并且包装类的对象可以自动的进行数学计算了。

    43900

    【JavaSE专栏6】Java 基本类型转换、包装类、自动装箱、自动

    简单来说 long + int 会自动转换为 long + long 再进行计算。 同理 int + double 也会自动转换为 double + double 再进行计算,如下代码所示。...同理, double 类型强制转换为 int 时,也会出现数据精度丢失(数据丢失),如下代码所示。...---- 二、自动装箱自动箱 在学习自动装箱自动箱之前,首先了解什么是包装类。 2.1 包装类是什么? jdk1.4 中,新增了 8 个基本数据类型的对应包装类,如下表所示。...基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean...如果不进行自动箱,两个不同类型的变量无法进行比较。 就好比拿 苹果 电视 比较性能,这是不可行的。 Java 只能将包装类 Integer 箱为 int 才能 int 值进行比较。

    17720

    Java——扩展概念(匿名内部类、包装类、装箱与箱、数据类型的转换)

    8中基本数据类型包装类: byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、char(Character...这8种包装类也分为两种类型: 对象型(java.long.Object直接子类):Character、Boolean; 数值型(java.lang.Number直接子类):Byte、Short、Integer...y.doubleValue(); 所有的装箱与箱操作基本都是一个路子,以上方法都是JDK1.5之前使用的,JDK1.5后提供了自动装箱与箱的支持: Integer x = 100...包装类中提供转换方法,以常用的几个类型为主: Integer类方法:public static int parseInt(String s); Double类的方法:public static double...==比较时,要使用eauals()方法最为保险,String的情况类似。

    58430

    春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了

    在下图中我们将Java中的数据类型分为三个部分:基本数据类型,包装类型,引用数据类型 基本数据类型 Java中“boolean、char、byte、short、int、long、float double...等级由低到高 byte -> short -> int -> long -> float -> double char -> int -> long -> float -> double int a =...自动装箱与Java中不仅仅基本类型之间存在着转换,基本数据类型与包装类型之间同样存在着转换,JDK1.5之前是不支持自动装箱与箱的,所以那时候需要通过显示的方法调用来实现转换,而JDK1.5...//JDK1.5之前是不支持自动装箱自动箱的,定义Integer对象,必须 Integer i = new Integer(8); //JDK1.5开始,提供了自动装箱的功能,定义Integer...引用数据类型 Java的数据类型除了8种基本数据类型对应的包装类型外,还有一个分类为引用数据类型,文章开头的树形图中已经分好,引用类型分为:数组,类接口。 那为什么叫他引用数据类型呢?

    10300

    Java——扩展概念(匿名内部类、包装类、装箱与箱、数据类型的转换)

    参考链接: Java中自动装箱扩展的方法重载 目录  1、匿名内部类  2、包装类实现原理分析  3、装箱与箱  4、数据类型转换  5、总结  本文讲解的扩展内容,包括:匿名内部类、包装类实现原理分析...8中基本数据类型包装类:  byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、char(Character...这8种包装类也分为两种类型:  对象型(java.long.Object直接子类):Character、Boolean;数值型(java.lang.Number直接子类):Byte、Short、Integer...();  所有的装箱与箱操作基本都是一个路子,以上方法都是JDK1.5之前使用的,JDK1.5后提供了自动装箱与箱的支持:          Integer x = 100; //自动装箱为类        ...包装类中提供转换方法,以常用的几个类型为主:  Integer类方法:public static int parseInt(String s);Double类的方法:public static double

    52510

    Java 性能笔记:自动装箱

    先不管造成差异的原因,让我们来仔细琢磨下Java中“自动装箱”“自动箱”的概念。 Java中变量被分为两类:基础数据类型引用数据类型。...byte Byte char Character float Float int Integer long Long short Short double Double 如下代码片段列举了“自动装箱...”“自动箱”的例子。...代码片段中,一个“long”类型的值被添加到“Long”类型值的列表中。JDK1.4中,要想执行以上操作,我们必须将基础数据类型放到与之对应的引用数据类型中(装箱)。...所以我们可以利用转化后的代码(创建不必要的“Long”实例)来解释处理速度缘何变慢。 ? 结论,如果我们想要写出处理速度更快的代码,我们需要仔细琢磨“自动装箱”“自动箱”的概念。

    43910
    领券