C#vs VB.NET按位OR

 Lora1201 发布于 2023-02-13 19:06

为什么vb和C#中的OR运算符给出不同的结果.

Console.WriteLine(0x2 | 0x80000000); output 2147483650

http://dotnetfiddle.net/wC9AgG

Console.WriteLine(&H2 Or &H80000000) output -2147483646

http://dotnetfiddle.net/g4tLQ9

1 个回答
  • 在VB.NET中,&H80000000有类型Int32并且是负数.在C#中,0x80000000有类型UInt32并且是正数.语言之间的区别不是按位OR,而是整数文字.

    最有可能的是,类型不同的原因是因为C#是从支持无符号类型的语言发展而来的,VB.NET是从一种不支持无符号类型的语言发展而来的.在没有无符号类型的语言中&H80000000,成为负整数是有意义的.

    2023-02-13 19:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有