有一段C语言程序没看懂,不知道该函数的返回值表示什么,希望能给函数加上注释.
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/30 16:02:19
有一段C语言程序没看懂,不知道该函数的返回值表示什么,希望能给函数加上注释.
unsigned int parity(unsigned int x)
{x = x^(x >> 16);
x = x^(x >> 8);
x = x^(x >> 4);
x = x^(x >> 2);
x = x^(x >> 1);
return x&1;
}
unsigned int parity(unsigned int x)
{x = x^(x >> 16);
x = x^(x >> 8);
x = x^(x >> 4);
x = x^(x >> 2);
x = x^(x >> 1);
return x&1;
}
![有一段C语言程序没看懂,不知道该函数的返回值表示什么,希望能给函数加上注释.](/uploads/image/z/4102125-69-5.jpg?t=%E6%9C%89%E4%B8%80%E6%AE%B5C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E6%B2%A1%E7%9C%8B%E6%87%82%2C%E4%B8%8D%E7%9F%A5%E9%81%93%E8%AF%A5%E5%87%BD%E6%95%B0%E7%9A%84%E8%BF%94%E5%9B%9E%E5%80%BC%E8%A1%A8%E7%A4%BA%E4%BB%80%E4%B9%88%2C%E5%B8%8C%E6%9C%9B%E8%83%BD%E7%BB%99%E5%87%BD%E6%95%B0%E5%8A%A0%E4%B8%8A%E6%B3%A8%E9%87%8A.)
unsigned int parity(unsigned int x)
{x = x^(x >> 16);//x等于(x与(x逻辑右移16位)的异或),下面类似
x = x^(x >> 8);
x = x^(x >> 4);
x = x^(x >> 2);
x = x^(x >> 1);
return x&1;//x与1按位与,实际上前面几位都是0,最后一位不变
}
这个函数的所用是将unsigned int类型x的32位全部进行异或运算
第一次,前16位与后16位进行异或
第二次,最后两个8个位进行异或
然后最后两个四位、两个二位,两个一位进行异或
就像是折纸一样,一直对折,他们最后就会叠到一起,异或到最后一位
最后一句是把前面几位忽略掉,因为没用了,只要最后一位结果
{x = x^(x >> 16);//x等于(x与(x逻辑右移16位)的异或),下面类似
x = x^(x >> 8);
x = x^(x >> 4);
x = x^(x >> 2);
x = x^(x >> 1);
return x&1;//x与1按位与,实际上前面几位都是0,最后一位不变
}
这个函数的所用是将unsigned int类型x的32位全部进行异或运算
第一次,前16位与后16位进行异或
第二次,最后两个8个位进行异或
然后最后两个四位、两个二位,两个一位进行异或
就像是折纸一样,一直对折,他们最后就会叠到一起,异或到最后一位
最后一句是把前面几位忽略掉,因为没用了,只要最后一位结果
有一段C语言程序没看懂,不知道该函数的返回值表示什么,希望能给函数加上注释.
C语言程序调用函数返回值的问题
c语言程序.当n=5时,下列函数的返回值是:
C语言中 定义没有返回值的函数有什么意义呢?
C语言如何把一个函数的返回值传递给另一个函数
我有需要求一个函数的值,但是函数中有一个虚数i,我该怎么用C语言编写求函数值的程序
C语言程序,要求两个数通过函数调用比较两个数的大小,并把大数返回给主调函数,输出这个数.
什么语言程序能解决符号函数积分的问题
帮忙写一个c语言程序,功能:求出二维数组周边元素之和,作为函数值返回.二维数组的值在主函数中赋予.
C语言里面 return 0什么用的?书上说返回函数值为0?
1该程序是求什么函数的函数值
C语言 编写程序 求下列分段函数的值