什么是32为整数

weedxg 2000-12-22 01:38:00
在用API编程时,有些参数是32位整数,要分高低16位,高16位表示什么什么,
低16位表示什么什么。
谁能告诉我这样的参数该怎样设置?怎样构造一个这样的32位整数?它和一般
的整数(例如256)有什么不同?相互之间怎样转换?
最好能给个例子,谢谢
...全文
1072 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weedxg 2000-12-22
  • 打赏
  • 举报
回复
提问者说:zhq2000,我还是不太明白。
例如:在VB中获取音量大小的到-234000000或176000000,这样两个数,怎样将它们转换成一般的整形或长整形呢?也就是说32位整数怎样转换成一般数?
你上面举的例子是把256转换成32位整数,还是把255转换?转换后的变量A就可以直接
带入API函数使用了吗?
zhq2000 2000-12-22
  • 打赏
  • 举报
回复
1.位是二进制位(值域:0,1),每个字节有8个二进制位(从右至左存放),32位就是4个字节。
------------------------------------------
|0 |1 |0 |…………| 1 | ………………| 0 |
-------------------------------------------
第32位 第16位 第一位

2.在VB中long是32位的,integer是16位的。

3.构造:高16位通过移位实现,向左移16位(每向左移一位,数就增在两倍),即乘2的16次方;然后再加上低16位的数(此数与 &hFFFF 取与运算 ,保证它的高16位为0)即可:

4.和一般整数没什么区别。

'从两个integer生成32位:
dim A as Long '32位数据
dim B as integer '高16位
dim C as Integer '低16位

b = 255
c = 255
A = CLng(b)*2^16 + c '因为C本身就是16位的,所以不用与&HFFFF与运算

''''''''''''''''''''''''''''''''''''''''''''''''''''
'由Long 生成32位
dim A as Long '32位数据
dim B as Long '高16位
dim C as Long '低16位

b = 255
c = 255
A = b*2^16 + (c AND &HFFFF) '因为C本身就是32位的,所以要与&HFFFF与运算
xddll 2000-12-22
  • 打赏
  • 举报
回复
没学过c语言?
上将军 2000-12-22
  • 打赏
  • 举报
回复
32位整数就是由32个位的0或1组成的二进制整数(这样说不知道是否正确),不过
知道有32个位就行了。例子如下:
1111111111111111 1111111111111111
---------------- ----------------
高16位 低16位

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧