gpt4 book ai didi

c# - 如何确定设置了哪个位

转载 作者:行者123 更新时间:2023-11-30 19:48:28 28 4
gpt4 key购买 nike

我有两个字节,它们只有 1 位不同。我想知道这是什么位。

所以:

byte a,b;
a=0;
b=2;

ChangedBit(a,b) should give bit 1
ChangedBit(4,5) should give bit 0
ChangedBit(7,3) should give bit 2

非常欢迎任何建议!!

谢谢,

埃里克

最佳答案

正确的解决方法是

var bit = Math.Log(a ^ b, 2);

虽然这当然留下了一个悬而未决的问题,即如果由于任何原因超过一位不同,会发生什么。

你可以使用

var bit = (int)Math.Log(a ^ b, 2);

为您获取最高不同位的索引,如果不止一位不同的话。

警告:为了正确性,任何此类函数还应在尝试提供结果。否则,您将得到无意义的结果或完全异常。此处介绍的所有解决方案都是如此,包括这个解决方案。

关于c# - 如何确定设置了哪个位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484452/

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