社区
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
显示又正常了,是个正数了,不明白,求指点
...全文
1305
7
打赏
收藏
VB中的long类型
下面这段代码不明白: Dim a As Long a = &H8000 text1.text = a 最后显示的却是-32768...怎么变成short型了... 数据扩大一下,改成 Dim a As Long a = &H230000 text1.text = a 显示又正常了,是个正数了,不明白,求指点
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
-EnumChildWindows所有窗口及子窗口句柄
vb
-EnumChildWindows所有窗口及子窗口句柄
VB
对指定窗口进行后台模拟键盘鼠标信息的操作
VB
中
利用对postmessage指定窗口进行后台模拟键盘鼠标信息的操作
VB
Hook捕获鼠标和键盘消息 含代码
Hook捕获鼠标和键盘消息 Hook捕获鼠标和键盘消息
取整数的几种方法
取整数的几种方法
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基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章