永发信息网

想知道ch[i] & (char(1) << j)) 这句主要是想做什么的?

答案:3  悬赏:10  手机版
解决时间 2021-02-10 06:32
  • 提问者网友:不爱我么
  • 2021-02-09 09:26
Vector_Data = *inDouble; //Vector_Data是double类型的
char *ch = (char *)&Vector_Data; //把载体数据转换成字符数组
int temp = 56;
for(i=7;i>=0;--i)
{
for(j=7;j>=0;--j)
{
if (ch[i]&(char(1)< Binary1[j+temp] = 1;
else
Binary1[j+temp] = 0;
}
temp-=8;
}

这段代码的目的是想把一个double型的数转换成二进制存储在Binary1中
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-09 10:55
if(ch[i] & (char(1) << j)) )
是判断ch[i]的第j位是否为1

如果第j位为1,则 按位与结果不等于0

1 << j 就是把00000001的最后一个1向前移动j个位置,比如j=3,那么结果就是00001000
&按位与 的结果只能是00001000 或00000000
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-02-09 11:49
依次判断ch中的每个字符的哪一位是1(char是1字节8位所以j循环8次)
  • 2楼网友:时间的尘埃
  • 2021-02-09 11:32
the chinese people#结果是7,18; 表示里面aeiou的个数是7个,字符总数是18个;输入的字符是aeiou之一,i就加1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯