位运算符作用于位,并逐位执行操作。
#include <stdio.h>
int main()
{
int a = 0 & 0;
int b = 1 & 0;
int c = 0 & 1;
int d = 1 & 1;
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("c = %d\n", c);
printf("d = %d\n", d);
getchar();
return 0;
}
输出结果为:
a = 0
b = 0
c = 0
d = 1
若A =55,B=25,则结果为
#include <stdio.h>
int main()
{
int A = 55;
int B = 25;
int iResult = A & B;
printf("iResult = %d\n", iResult);
getchar();
return 0;
}
// 输出 iResult = 17
将A,B分别转为二进制:
A = 55 = 00110111
B = 25 = 00011001
A & B = 00010001 = 17
生成0-25.5的随机浮点数,代码如下:
#include <stdio.h>
void initialData(float *ip, int size) {
//generate different seed for random number
time_t t;
//初始化随机数发生器,用于设置rand()产生随机数时的种子通常使用time(0)或time(NULL)
//time(0)返回从1970 1月1日00:00到当前时刻的秒数
srand((unsigned)time(&t));
for (int i = 0; i < size; i++) {
ip[i] = (float)(rand() & 0xFF) / 10.0f;
}
}
int main()
{
int size = 100;
float ip[100];
initialData(ip, size);
//for (int i = 0; i < size; i++) {
// printf("iResult = %f\n", ip[i]);
//}
float max = ip[0];
float min = ip[0];
for (int i = 0; i < size; i++) {
if (max < ip[i]) {
max = ip[i];
}
if (min > ip[i]) {
min = ip[i];
}
}
printf("max = %f\n", max);
printf("min = %f\n", min);
getchar();
return 0;
}
//输出结果如下
// max = 25.500000
// min = 0.000000
// 结果也可能得不到最小值或最大值:
// max = 25.500000
// min = 0.100000