c# - C# 的 Math.Max() 实现与数学上的实现相比有什么好处吗?
问题描述
在 C# Math.Max() 中实现为:
[NonVersionable]
public static int Max(int val1, int val2)
{
return (val1 >= val2) ? val1 : val2;
}
虽然我相信它也可以实现为:
C# 的实现是否有任何好处,例如在数学上实现它的效率?
(a + b + Math.Abs(a-b)) /2
解决方案
一方面,数学实现不正确,因为它不处理上溢/下溢。
如果你这样做:
// suppose Max is implemented the "mathematical" way
Max(int.MaxValue, int.MaxValue - 1)
它会给-1。
推荐阅读
- javascript - Google Apps 脚本 - For Loop 问题适用于虚假陈述而不是真实
- android - 如何在用 Delphi 编写的 Android 应用程序中使用物理键盘处理非英语重音字符?
- vuejs3 - 改变数组表示的状态的正确模式是什么?
- dynamic - 使用 snakemake 中的动态输出拆分 BAM 文件
- python - 使用 Flask-SocketIO 5.0.1 加入房间时出现 TypeError
- windows - 如何在 Windows 中正确删除(删除或禁用)权限?
- java - 根据值对数据集行进行分组
- redis - Redis 用于键值存储和队列
- javascript - Fullcalendar 不清楚如何从事件中导入日期和描述
- java - Java 虚拟机创建了多少个对象?