获取一个数值中某一位的数据
你好,感谢你阅读此帖.
今天我们要讨论的是在C#中如何获取一个数值中的某一位的数据,比如一个Byte型数据8,它的二进制表示为00001000(高位到低位),那我应该怎样获取它的第3位的值1呢?
我的想法是这样的,先把第3位的值右移7-3=4位,然后再右移7位,最后取这个值,这样就把第3位前后的值都变为0了,最后输出它的值为1.下面是我写的一个方法:
恳请大家指正,另外我想把它变成能处理不同数据类型的方法,比如运用范型,但是不知道怎么使用,请大家帮帮忙.
我看到C#中还有一些位操作的类,比如BitArray,BitVector32,好像都不合适,BitConvert好像也只是针对对字节流的转换
不知道大家有没有更好的方法,欢迎大家讨论.
祝你工作顺利,天天开心.
今天我们要讨论的是在C#中如何获取一个数值中的某一位的数据,比如一个Byte型数据8,它的二进制表示为00001000(高位到低位),那我应该怎样获取它的第3位的值1呢?
我的想法是这样的,先把第3位的值右移7-3=4位,然后再右移7位,最后取这个值,这样就把第3位前后的值都变为0了,最后输出它的值为1.下面是我写的一个方法:
/// <summary>
/// 获取数据中某一位的值
/// </summary>
/// <param name="input">传入的数据类型,可换成其它数据类型,比如Int</param>
/// <param name="index">要获取的第几位的序号,从0开始</param>
/// <returns>返回值为-1表示获取值失败</returns>
private int GetbitValue(byte input,int index)
{
if (index > sizeof(byte))
{
return -1;
}
//左移到最高位
int value = input << (sizeof(byte) - 1 - index);
//右移到最低位
value = value >> (sizeof(byte) - 1);
return value;
}
恳请大家指正,另外我想把它变成能处理不同数据类型的方法,比如运用范型,但是不知道怎么使用,请大家帮帮忙.
我看到C#中还有一些位操作的类,比如BitArray,BitVector32,好像都不合适,BitConvert好像也只是针对对字节流的转换
不知道大家有没有更好的方法,欢迎大家讨论.
祝你工作顺利,天天开心.
...全文
相关推荐
B2073 求小数的某一位.c
洛谷网题目 C语言源码 代码
c代码-一位数字成绩
c代码-一位数字成绩
十进制一位数转成二进制数
十进制一位数转成二进制数,希望大家指教 互相学习
通过一位采样实现超高分辨率脉冲多普勒雷达感应
通过一位采样实现超高分辨率脉冲多普勒雷达感应
获取指定数据序列的第一个数值和最后一个数值(R语言)
其中,获取指定数据序列的第一个数值和最后一个数值是一个常见的需求。假设我们有一个数据序列,例如一个向量或一个数据框,我们想要获取其中的第一个数值和最后一个数值。希望本文对你理解如何在R语言中获取指定数据序列的第一个数值和最后一个数值有所帮助。值得注意的是,上述方法适用于向量和数据框等常见的数据结构。如果你有其他类型的数据序列,可能需要进行相应的调整。在运行上述代码后,我们会得到第一个数值和最后一个数值的输出。来获取第一个数值和最后一个数值。获取指定数据序列的第一个数值和最后一个数值(R语言)


