永发信息网

vb中关于16进制的两个问题

答案:3  悬赏:10  手机版
解决时间 2021-02-14 05:28
  • 提问者网友:刺鸟
  • 2021-02-13 20:17
vb中关于16进制的两个问题
最佳答案
  • 五星知识达人网友:西风乍起
  • 2021-02-13 20:23
1. 末尾的&表示该数值是一个长整型数值,否则位数不够可能会被认为是integer.

例如: &HFF& = &H000000FF

2. VB不认识 0x的写法, 但常量的值是一样的.追问1、被认为是短整型会出错吗?不是长得别被截成短的就行吗?强制成长得,那值和短的不是一样吗?为什么非要搞成长的?
2、vb的&H和c语言里的0x,是通过怎样换算的呀?
谢谢追答如果是当成数字来用的话,你说的是没有问题的, 特殊情况下可能会有问题,比如位运算的时候.
对于同一个数,&H后面的数值和0x后面的数值是一样一样的,不需要换算.追问有些明白了,我在msdn里看得那些BIF常量的赋值都是c语言的,像0 x00001000这样。
所以在vb里,要换成vb的格式&H1000,但这样和0x那个位数不等,所以再加上限定类型符号&,变成&H1000&,就相当于是&H00001000了,这样就和0x那个除了开头不一样,其他都是一样的了。
我想可能是因为这些常量有时要进行+运算,所以应当强制成相同的位数,这样进行+运算时应该就不会出错了。
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-13 22:10
类型说明符 Long型 有 &h 就够了
vb只有&h
  • 2楼网友:封刀令
  • 2021-02-13 21:56
&H开头指出这是一个十六进制表示的数,而结尾使用&表示这是一个Long类型的数.
&H1和&H1&的值是相等的,但数据类型是不一样的.
枚举中或其它地方并不是一定要使用十六进制值来书写,可以使用等价的十进制值:
BIF_BROWSEFORCOMPUTER = 4096&

BIF_BROWSEFORCOMPUTER = &H1000&
是完全等价的,只是后者更有利于理解----因为这些枚举是可以进行And去算的,所以它们每个标记换算成二进制都是只有一个位(Bit)是1,对应十六进制则是,只有一位是1/2/4/8其它位均为0
这样的枚举值在使用时大部分是可以使用多个枚举值的.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯