社区
VB基础类
帖子详情
什么是32为整数
weedxg
2000-12-22 01:38:00
在用API编程时,有些参数是32位整数,要分高低16位,高16位表示什么什么,
低16位表示什么什么。
谁能告诉我这样的参数该怎样设置?怎样构造一个这样的32位整数?它和一般
的整数(例如256)有什么不同?相互之间怎样转换?
最好能给个例子,谢谢
...全文
1072
4
打赏
收藏
什么是32为整数
在用API编程时,有些参数是32位整数,要分高低16位,高16位表示什么什么, 低16位表示什么什么。 谁能告诉我这样的参数该怎样设置?怎样构造一个这样的32位整数?它和一般 的整数(例如256)有什么不同?相互之间怎样转换? 最好能给个例子,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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位
stdint.h头文件
很多项目经常使用的两个头文件inttypes.h stdint.h,否则会报错。网上很多资料,但基本上不可用。这两个文件,我在自己的项目中运行良好。
16位
整数
,
32
位
整数
,64位
整数
首先解释16位
整数
:所谓16位
整数
就是16个二进制位(16#7FFF)而对应的最大
整数
为
32
767;PLC中是用二进制的补码来表示有符号数的,定义最高位为符号位;当最高位位0时为正;最高位为1时为负;所以经过换算就是-701;(补码是正数先求反码(0变1;1变0)然后加1); 以次内推,
32
位,64位也是如此。...
为何数据库推荐将IPv4地址存储为
32
位
整数
而非字符串?
探讨在Java开发中存储IPv4地址的最佳方式。通过对比字符串存储和
整数
存储两种方式的优缺点,我们发现
整数
存储方式在存储空间效率、查询效率和数学运算方面更具优势。虽然字符串存储方式更直观易读,但在处理大量数据时会浪费存储空间并降低查询效率。 通过具体的示例代码演示了如何生成大量的IPv4地址数据,并将其插入到数据库表中。通过查询和索引效率的比较,我们验证了
整数
存储方式在性能方面的优势。
8位与16位及
32
位
整数
之间怎么转换
位数少的转换成位数多的,直接赋值就好了,比如8位的
整数
24转换成
32
位还是24。 而位数多的转换成位数少的是截取低位那么多位数,比如
32
位的
整数
257,其二进制是1 0000 0001,转换成8位时,就截取后面的8位,即0000 0001,所以
32
位的
整数
257转换成8位的
整数
时等于1。
32
位的
整数
a转换成16位
整数
b,b = a & 0xFFFF
32
位的
整数
a转换成8位
整数
b,...
输入一个
32
位的
整数
a,使用按位异或^运算,生成一个新的
32
位
整数
b
输入一个
32
位的
整数
a,使用按位异或^运算,生成一个新的
32
位
整数
b,使得该
整数
b的每一位等于原
整数
a中该位左右两边两个bit位的异或结果 代码: #include <stdio.h> //输入一个
32
位的
整数
a,使用按位异或^运算,生成一个新的
32
位
整数
b, //使得该
整数
b的每一位等于原
整数
a中该位左右两边两个bit位的异或结果 void f(long a) { int i;...
VB基础类
7,786
社区成员
197,586
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章