对于人们来说,这应该是一个简单的方法。除了连接到一个简介的内容农场之外,谷歌什么也没有,而且用英语写成。所以,让我们在这里清理它,它将永远被埋葬。
VB十六进制数字的尾随&符号是什么?我已经读过它强制转换为Int32,因为VB想要尝试存储为Int16。这对我来说很有意义。但是我从模糊中得不到的部分是始终使用尾随符号用于位掩码,标志,枚举等。显然,它与覆盖VB的内部使用带符号数字的迷信有关,这可能导致比较奇怪的结果。
所以为了得到简单的点,VB.Net十六进制数的规则是什么,有和没有尾随的&符号?请在bitmasks / flags等情况下包括具体用法,以及如何使用它来强制签名与未签名。
没有C#请:)
答案 0 :(得分:2)
除非将类型明确指定为UInt32,Int64或UInt64,否则Vb.net会将0x80000000-0xFFFFFFFF范围内的“& h” - 注释十六进制常量视为负数。如果数字在“&”之后用正好八位数写入,这种行为可能是可以理解的,但由于某些原因我无法理解,即使数字是用前导零写的, vb.net也会表现出来。在VB的当前版本中,可以通过使用后缀“&”强制正确评估数字。后缀(Int64),“L”(Int64),“UL”(UInt64)或“UI”(UInt32)。在早期版本的VB中,“问题范围”是0x8000-0xFFFF,并且强制正确评估该范围内的数字的唯一方法(作为32位整数,然后称为“长”)是一个尾随符号
答案 1 :(得分:1)
Visual Basic具有Type Characters的概念。这些可以用来修改变量声明和文字,虽然我不建议在变量声明中使用它们 - 大多数开发人员现在更熟悉As
。例如。以下声明是等效的:
Dim X&
Dim X As Long
但就个人而言,我发现第二个更具可读性。如果我看到第一个,我实际上必须访问上面的链接,或者使用Intellisense来计算变量是什么(如果查看纸上的代码,那就不好了)。