作业帮 > 综合 > 作业

C语言中的if (0x01 & ( info >> (len-i-1)))这句话是什么意思

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/11 01:23:04
C语言中的if (0x01 & ( info >> (len-i-1)))这句话是什么意思
C语言中的if (0x01 & ( info >> (len-i-1)))这句话是什么意思
0x01代表十六进制数也就是十进制数的01,& 是把这些数转化为二进制数 然后进行按位与运算
info >> (len-i-1)中的>>表示向右移位,移动的位数为(len-i-1)
再问: 位与是怎么计算的? 比如说前面的数是1, 后面的这个数十7 。。。 然后1&7是什么结果?
再答: 十进制的1 用四位二进制数表示就是 0001 十进制的7 用四位二进制数表示就是 0111 然后对应的位进行与运算: -------- 0001 结果就是1
再问: 谢谢。那么这个两个语句整体上是对info进行什么样的判断?比如当info是8 ,或者是3的时候,做什么事情,然后输出什么? 或者说 for(i=0 ; i> (len-i-1))) fputc('1', fpfp); else fputc('0', fpfp); }这部分代码做的是什么事情
再答: if (0x01 & ( info >> (len-i-1)))这个一个条件判断 如果0x01 & ( info >> (len-i-1)) 结果为ture(==1) 就执行这个fputc('1', fpfp);语句(把1写到文件中) 如果0x01 & ( info >> (len-i-1)) 结果为false(!=1) 就执行这个fputc('0', fpfp);语句(把0写到文件中) QQ:862786128