关于判断字节中二进制为1或者是0的问题

char data = 0x01; //需要比较的数据
char temp = 0x01; //如果是单字节为 0x01 双字节为 0x0001
char lasttemp =0x00;
for(int i = 0 ;i <4 ;i++) //判断几个字节就在这里输入几
{
lasttemp = data>>i;//先右移,然后与0x01 & 运算,如果为1 则 结果为1 ,第i位就是1了。
if(lasttemp&temp)
{
printf("第%d位,为1。",i);
//to do some.
}
}

  根据位运算中的移位运算,并且与0x01 做&运算,就能得出哪一位是一或者是0.

时间: 2024-10-12 08:14:30

关于判断字节中二进制为1或者是0的问题的相关文章

判断1个字节中被置1的位的个数

判断1个字节中被置1的位的个数 #include <iostream> using namespace std; size_t calcHasOneBit(char ch) { size_t count = 0, i = 0; char val = 0; for (i = 0; i < 8; i++) { val = ch >> i; val &= 0x01; if (val) { count++; } } return count; } int main(int a

计算int 型数值在内存中二进制1的个数

今天在华为OJ上遇到这么一个题目,很简单,但是却总是得不到最好的成绩记录.因此比较了自己的程序.思路与别人的异同,发现还是有很大区别的,遂记录如下. 题目-- 输入一个int型整数,求该整数的二进制在内存中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 思路1 <span style="font-size:18px;">public static void main(String[] args) { Scanner scanner = new

判断字符串中是否包含中文

public bool CheckChinese(string str) { bool flag = false; UnicodeEncoding a = new UnicodeEncoding(); byte[] b = a.GetBytes(str); for(int i=0;i<b.Length;i++) { i++; if (b[i] != 0) { flag = true; } else { flag = false; } } return flag; }这段代码为什么能实现判断是否为

如何判断js中的数据类型?

js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: 什么整数啊浮点数啊都叫数字,你懂的~ Boolean:  就是true和false啦 undefined: 未定义,就是你创建一个变量后却没给它赋值~ null:  故名思久,null就是没有,什么也不表示 object: 这个我也很难解释的说.就是除了上面五种之外的类型 如何判断js中的数据类型:type

哈希(6) - 判断数组中是否存在重复元素且距离在K之内

给定一个包含多个重复元素的未排序的数组.另外给定一个数字k,且k小于数组大小.判断数组中是否包含重复元素,且它们相隔的距离处于范围k之内. 例如: Input: k = 3, arr[] = {1, 2, 3, 4, 1, 2, 3, 4} Output: false 所有重复元素的距离>k. Input: k = 3, arr[] = {1, 2, 3, 1, 4, 5} Output: true 存在重复元素1,且距离为3(==k). Input: k = 3, arr[] = {1, 2,

PHP判断字符串中是否包含指定字符串,支持中文哦

RT,随手写的 1 /** 2 * 判断字符串中是否包含指定字符串 3 * @var source 源字符串 4 * @var target 要判断的是否包含的字符串 5 * @return bool 6 */ 7 function hasstring($source,$target){ 8 preg_match_all("/$target/sim", $source, $strResult, PREG_PATTERN_ORDER); 9 return !empty($strResul

给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的位置,如果sum=x则返回true, 3,找到位置后,保持i不变,从k处向前遍历,直到找到A[k]+A[i]等于x,并返回TRUE,如果找不到,则返回false. 论证步骤3:当前找到的位置恰好A[k]+A[i]>x,且前一位置的sum<x: 所以A[i]前面的数(不包括A[i])无论取哪两个数都

如何获取和判断json中的boolean 值

其实我是明确知道返回来的数据是 boolean 类型的, 只是在做判断的时候 发现直接使用 if([responseObject objectForKey:@"success"]) 判断没有任何意义,因为我判断的是这是不是为真,换句话说,就是是不是非空, 靠当然非空啦,大不了返回一个false 但那个也是有值得,so ,我尝试使用改变数据类型接收, 当我用NSString * 接收时, 发生这种错误 [__NSCFBoolean isEqualToString:]: unrecogni

==运算符是判断栈中两个值是否相等

默认情况下(也即类型没有重载==运算符的情况下),==运算符是判断栈中两个值是否相等.为了验证这个结论,来看下面的程序: namespace JudgeEquals{    class Program    {        static void Main(string[] args)        {            int a = 10;            int b = 10;            Console.WriteLine(a==b); string s1 = "a