我有两个无符号整数,a 和 b。现在我的目标是获得两者之间差异的绝对值。
目前我正在做的是:
uint64_t a, b;
llabs((int64_t)(a - b))
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我不确定是否有效。有人能证实吗?
好吧,对于某些值来说存在一个问题:即 对于a=0并且b大于你的最大值int64_t+1将会发生溢出。我不知道,你现实世界的价值观是否也是这样。
然而,你可以更容易地做到这一点:
a>b?a-b:b-a
Run Code Online (Sandbox Code Playgroud)