社区
VB基础类
帖子详情
VB中的long类型
me9931
2012-07-15 12:12:21
下面这段代码不明白:
Dim a As Long
a = &H8000
text1.text = a
最后显示的却是-32768...怎么变成short型了...
数据扩大一下,改成
Dim a As Long
a = &H230000
text1.text = a
显示又正常了,是个正数了,不明白,求指点
...全文
1435
7
打赏
收藏
VB中的long类型
下面这段代码不明白: Dim a As Long a = &H8000 text1.text = a 最后显示的却是-32768...怎么变成short型了... 数据扩大一下,改成 Dim a As Long a = &H230000 text1.text = a 显示又正常了,是个正数了,不明白,求指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
东方之珠
2012-07-16
打赏
举报
回复
[Quote=引用楼主 的回复:]
下面这段代码不明白:
Dim a As Long
a = &H8000
text1.text = a
最后显示的却是-32768...怎么变成short型了...
数据扩大一下,改成
Dim a As Long
a = &H230000
text1.text = a
显示又正常了,是个正数了,不明白,求指点
[/Quote]
原因很简单,Long类型是4字节长度,&H8000只有2字节,后面需要加&显式转换成Long型(为
什么不能隐式转换成Long呢,因为&H8000需要经过计算才能得出结果,本身只有2字节,是integer类型,如果写成a=32768就不需要计算了,后面也不需要加&显式转换
);而&H230000已经超过2字节了,就当成Long型了,不需要加&。这2点在 VB IDE 下可以验证,超过2字节的常量在IDE下会自动去掉后面加的&符号。
看看MSDN:
Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。
bcrun
2012-07-16
打赏
举报
回复
另一种说法,就是对于一般的编程语言,如“323,&H8000,0x8000"这样的都叫做“直接量”,编译系统识别这种量的数值类型时,一般是尽量匹配占内存空间小的类型,所以当数值是16进制表示,又落在较小的类型范围内时,就最好要指定类型,免得产生错误。
lliai
2012-07-16
打赏
举报
回复
&H8000&,后面的&是强制类型为long,
赵4老师
2012-07-16
打赏
举报
回复
常量也有类型!
熊孩子开学喽
2012-07-15
打赏
举报
回复
[Quote=引用楼主 的回复:]
下面这段代码不明白:
Dim a As Long
a = &H8000
text1.text = a
最后显示的却是-32768...怎么变成short型了...
数据扩大一下,改成
Dim a As Long
a = &H230000
text1.text = a
显示又正常了,是个正数了,不明白,求指点
[/Quote]
因为在&H8000的时候已经是int型的负数了, 等赋值给a的时候当然还是负数.
1楼&H8000&,后面的&是强制类型为long, 这时就对了
贝隆
2012-07-15
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
VB中 &H表示为16进制
代码改为:
Dim a As Long
a = &H8000& (注意后在多一个&)
text1.text = a
[/Quote]
对
因为&H8000默认情况下是int类型,也就是 -32768 ,如果你显式的将其定义为 Long就不存在这个问题了,&H8000&就是显式的声明其为Long类型。
奔跑的油条
2012-07-15
打赏
举报
回复
VB中 &H表示为16进制
代码改为:
Dim a As Long
a = &H8000& (注意后在多一个&)
text1.text = a
vb
中
Variant/single
类型
给
Long
类型
符值的问题。(有小数丢失...
dim tmpA (tmpA是一个控件的.Left,
类型
为Variant/single)实际数据为1234.05dim tmpB as
Long
当tmpB=tmpA后,tmpB的数据变成1234了,这就是数据
类型
不匹配造成的。
vb
中
Variant/single
类型
给
Long
类型
符值的问题。(有小数丢失 ...
dim tmpA (tmpA是一个控件的.Left,
类型
为Variant/single)实际数据为1234.05 dim tmpB as
Long
当 tmpB=tmpA 后,tmpB的数据变成1234了,这就是数据
类型
不匹配造成的。...
c语言
long
与integer,
VB
中
Integer(整型)和
Long
(长整型)有什么区别?
VB
中
Integer(整型)和
Long
(长整型)区别区别如下:1、长度不同。Integer是int的封装
类型
是 32 位的整数,
long
是 64 位的整数,表示范围:-2^63 ~ 2^63 -1
long
是长整型。2、存储的数据长度不一样。在32位的机器里面, 有符号基本整形 int 能表示的范围是-32768~32767(-2^15~-2^15-1) 无符号基本整形 unsigned int...
[
VB
.NET]
long
高字节和低字节数据的读取
<script type="text/javascript"
VB
与VC的数据
类型
比较
VB
与VC的数据
类型
比较VC++
VB
short Integer int
Long
long
Long
UNIT
Long
U
LONG
Long
WORD DWORD
Long
WPARAM LPARAM
Long
WMSG UMSG
Long
HRESULT
Long
BOOL Boolean COLORREF
Long
HWND,HDC,HBRUSH,HKEY,等等
Long
LPSTR LPCSTRString LPWSTR,OLECHARBSTR String LPTSTR String VARIANT_B
VB基础类
7,787
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章