gpt4 book ai didi

c# - 为什么 Java 和 C# 有位移运算符?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:54 24 4
gpt4 key购买 nike

整数乘法(暂时忘记除法)之间的差异是否仍然有利于移位?如果是,差异有多大?

这看起来只是一个低级别的优化,即使您想要它(C#/Java)字节码编译器或 jit 在大多数情况下不应该捕获它吗?

注意:我测试了 C# 的编译输出(使用 gmcs Mono C# 编译器版本 2.6.7.0),乘法示例即使乘以 2 的倍数也没有使用 shift 进行乘法。

C# http://csharp.pastebin.com/hcrRnPrb

西尔 http://csharp.pastebin.com/0js9F2c1

附言我忘记了在字节上使用它可能有点用处,但在数字上使用它仍然有一些麻烦。

最佳答案

第一个原因:

有时候——大多数时候——你想把一个整数当作一个数字。有时,尽管整数是表示一组位的便捷方式。

乘法是对数字的运算。

移位是对一组位的操作。

乘法的结果和移位的结果之间恰好有关系并不是特别相关。这些操作在逻辑上是不同的。

第二个原因:

C# 和 Java 都旨在让 C 开发人员熟悉,尽管是在表面上。因此,C# 和 Java 中包含了来自 C 的常用习语。

关于c# - 为什么 Java 和 C# 有位移运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com