当前位置: 首页 > 知识库问答 >
问题:

检查位是否设置

东方灵均
2023-03-14

如何检查字节中的某个位是否被设置?

bool IsBitSet(Byte b,byte nPos)
{
   return .....;
}

共有2个答案

殳自怡
2023-03-14

基于Mario Fernandez的回答,我想为什么不把它作为一种不局限于数据类型的方便的扩展方法放在我的工具箱中,所以我希望在这里分享它是可以的:

/// <summary>
/// Returns whether the bit at the specified position is set.
/// </summary>
/// <typeparam name="T">Any integer type.</typeparam>
/// <param name="t">The value to check.</param>
/// <param name="pos">
/// The position of the bit to check, 0 refers to the least significant bit.
/// </param>
/// <returns>true if the specified bit is on, otherwise false.</returns>
public static bool IsBitSet<T>(this T t, int pos) where T : struct, IConvertible
{
 var value = t.ToInt64(CultureInfo.CurrentCulture);
 return (value & (1 << pos)) != 0;
}

注意:不要用于性能关键操作,因为此方法总是转换为long

罗淮晨
2023-03-14

听起来有点像家庭作业,但是:

bool IsBitSet(byte b, int pos)
{
   return (b & (1 << pos)) != 0;
}

pos 0是最低有效位,pos 7是最高有效位。

 类似资料:
  • 问题内容: 我需要检查value是否定义为任何东西,包括null。将null值视为undefined并返回。以以下为例: 请注意,这是未定义的。 我需要找到满足以下条件的条件: 有任何想法吗? 问题答案: IIRC,您可以使用此功能:

  • 给定一个非常简单的类: 要检查是否尚未赋值,只需执行是?

  • 问题内容: 我使用64位整数内的位存储标志。 我想知道是否有单个位设置了64位整数中的任何位置(我不在乎任何特定位的位置)。 我可以使用 Bit Twiddling Hacks (由Sean Eron Anderson 撰写) 来计数位数,但是我想知道什么是最有效的方法来检测是否设置了一位。 以及一些维基百科页面: 找到第一个 位操作 汉明重量 注意:我的应用程序是用Java编写的,但是我对使用其

  • 问题内容: 我一直在做一些关于CoreLocation的研究。最近,我遇到了一个问题,该问题已在其他地方解决,但在Objective C和iOS 8中已涵盖。 我觉得这有点愚蠢,但是如何在iOS 9上检查是否使用swift启用了定位服务? 在iOS 7(甚至可能是8?)上,您可以使用,但是在为iOS 9编译时似乎无法正常工作。 那我该怎么做呢? 谢谢! 问题答案: 将添加到您的类继承中,然后可以进

  • 问题内容: 我正在实现是否有位图,那么它应该将图像从imageview保存到内部存储器,否则在应用程序的内部存储器中设置另一个位图。这是代码:_ 问题答案: 您可以按以下方式检查它: 只需检查Bitmap值,如下所示:

  • 问题内容: 我的应用使用,但是较旧的设备(特别是支持iOS 8的iPad 2和3)不支持模糊处理。 我想检查用户设备是否支持模糊。我该怎么做? 问题答案: 有一种看似有希望的内部方法,但是您的应用程序当然会被Apple拒绝。让我们创建自己的方法: 首先,我们需要知道我们正在使用的确切设备类型: 例如,这将返回iPad 2。这是iDevice型号的更新列表:https : //theiphonewi