gpt4 book ai didi

c++ - 在不使用Abs函数或if语句的情况下获取绝对值

转载 作者:行者123 更新时间:2023-12-03 07:04:32 24 4
gpt4 key购买 nike

我在考虑如何在不使用if语句或abs()的情况下获取整数的绝对值。起初,我使用左移位(<<),试图使负号超出范围,然后将右移位回到原来的位置,但不幸的是,它对我不起作用。请让我知道为什么它不起作用以及其他替代方法。

最佳答案

Bit Twiddling Hacks:

int v;           // we want to find the absolute value of v
unsigned int r; // the result goes here
int const mask = v >> sizeof(int) * CHAR_BIT - 1;

r = (v + mask) ^ mask;

关于c++ - 在不使用Abs函数或if语句的情况下获取绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40836924/

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