c++ - 从 2 unsigned int 中获取最小值

标签 c++ c algorithm bit-manipulation

我正在尝试实现一个函数,该函数必须从数组列表中返回最小值,没有比较器(“==”、“!=”、“>”、“<”、“>=” “<=”),但为了简化,我将只使用两个变量。 假设我有两个值:数字 5 声明为“a”,数字 35 声明为“b”,所以我找到了一种方法来获取两个整数的最小值,但不是两个无符号整数,请参阅:

b + ((a - b) & ((a - b) >> 31));

谁能帮帮我?

最佳答案

廉价而俗气的解决方案:如果您使用的是 32 位无符号整数,您可以将它们转换为 64 位有符号整数并使用上面的代码。

关于c++ - 从 2 unsigned int 中获取最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914744/

相关文章:

c - 为什么 container_of 不在 glibc 中?

c - 为什么我的代码无法使用 sprintf 和 fopen 打开新文件?

java - Boyer-Moore 或 Java 或 Scala 库中的类似库

时间:2019-03-17 标签:c++: check if it is a Number in class

c++ - 为什么这段代码不向下转换并改变数组值呢?

python - Pybind11:创建数据的 numpy View

c++ - 如何在 C++1z 中使用实验性并行 STL?

c - 阶乘代码问题

algorithm - 使用邻接矩阵作为数据结构的 Kruskal 算法的时间效率

c# - 是否有任何算法可以根据某些模式对数组进行分类?