ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3093|回复: 14

[讨论] 声明变量时,弃用Byte和Integer类型,都改用Long类型,有科学依据吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-9-29 17:41 | 显示全部楼层 |阅读模式
本帖最后由 水和米 于 2019-9-30 06:47 编辑

本着查漏补缺的目的,最近啃了一本VBA基础书,里面有段话,想听听大家的意见:

事实上,即使处理完全处于Integer范围之内的数据,也建议读者使用Long类型的变量,而非Integer类型的变量。换句话说,除非在特殊情况下,否则建议读者用Long完全替代Integer,即使Integer看上去只占用2字节,似乎可以节省内存空间。这样做的原因在于:现代操作系统都是32位系统甚至64位系统,即使把变量声明为Integer类型(占用2字节共16位),计算机在执底层运算时仍然要将其补全为32位才能执行计算。这就相当于把声明为Integer的变量转换为long类型的变量,不仅没有节省空间,反而增加了底层处理时间。

中心意思是,声明变量时,弃用Byte和Integer类型,都改用Long类型,大家赞同吗?
请大家重视一下文中的重点语句:计算机在执底层运算时仍然要将其补全为32位才能执行计算,不仅没有节省空间,反而增加了底层处理时间。
意思是如果我们用了合适相当的Byte和Integer类型,反而是好心办坏事,严格上说,还会拖慢系统运行!哎,你说气人不?

78bdbac06744fbf634d041b8ca3a775.jpg

a55712101c3eca5e6ce903c001980cb.jpg


94c6dc9f18c4e31a0aa0471a994c404.jpg


补充内容 (2019-11-16 14:07):
已用同一段代码,分别定义成不同类型,大家感兴趣可以下载来,在自己的电脑配置上进行尝试,文件在12楼。

TA的精华主题

TA的得分主题

发表于 2019-9-29 21:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
只考虑过Integer的范围小,所以用Long.......
246页了还在讲数据类型。。。。。Excel浅入浅出

TA的精华主题

TA的得分主题

发表于 2019-9-29 21:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先遍历一下工作薄的所有工作表吧,把表名列出来

TA的精华主题

TA的得分主题

发表于 2019-9-29 22:11 | 显示全部楼层
觉得要看什么情况的

如果很多挺小的整数要写入一个二进制文件那这个变量类型一般会定义为integer型的,long当然也不会错的,但输出文件就变大了,,,

TA的精华主题

TA的得分主题

发表于 2019-9-29 22:28 | 显示全部楼层
非常赞同,LONG型和INTEGER型就不说了,我技术分只有3分的原因就缘于此,就说BYTE型,只能是0-255之间的整数,但是实际运用中,还会有其他问题出现,比如:
dim i as byte
for i=10 to 1 step -1
这里马上就会出错,虽然I变量在在BYTE类型的范围之内,但可气的是,连步进-1都不行。

TA的精华主题

TA的得分主题

发表于 2019-9-29 22:42 来自手机 | 显示全部楼层
杀鸡用牛刀,是可以但浪费。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-29 23:16 | 显示全部楼层
小小鸟前滚翻 发表于 2019-9-29 21:47
只考虑过Integer的范围小,所以用Long.......
246页了还在讲数据类型。。。。。Excel浅入浅出

被你发现亮点了,不过讲真,这本书虽然页码有424页之多,字号又小,排版又密,但全本看完,竟然还意犹未尽,哎,自虐啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-29 23:17 | 显示全部楼层
xyxcc177 发表于 2019-9-29 22:42
杀鸡用牛刀,是可以但浪费。

请大家重视一下文中的重点语句:计算机在执底层运算时仍然要将其补全为32位才能执行计算,不仅没有节省空间,反而增加了底层处理时间。
意思是如果我们用了合适相当的Byte和Integer类型,反而是好心办坏事,严格上说,还会拖慢系统运行!哎,你说气人不?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-2 17:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-10-2 18:52 | 显示全部楼层
读取二进制文件,就要用到 byte。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 10:53 , Processed in 0.042520 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表