C语言没有bool类型,所以只能用0代表假,非0代表真
尽量少用goto语句,能不弄则不用,goto语句只在一种情况下比较好,就是跳出多层嵌套循环时。
算术操作运算符:+ - * / % (%只接受整形)
左移:全部补零
右移:逻辑移位:补零 算数移位:根据符号位
//计算一个值中1的个数(最初版)
#include<iostream>
usingnamespace std;
int count_one_bits(unsignedint value)
{
int ones;
for (ones = 0; value != 0; value = value >> 1)
{
if (value % 2 != 0)
{
ones += 1;
}
}
return ones;
}
int main()
{
int ret=count_one_bits(15);
cout << ret << endl;
system( "pause");
return 0;
}
//计算一个值中1的个数(最终版)
#include<iostream>
usingnamespace std;
int count_one_bits(unsignedint value)
{
int ones;
for (ones = 0; value != 0; value >>= 1)
{
if (value &1 != 0)
{
ones += 1;
}
}
return ones;
}
int main()
{
int ret = count_one_bits(15);
cout << ret << endl;
system( "pause");
return 0;
}
AND->与运算 OR->或运算 XOR->异或
单目运算符~ :0变1, 1变0
赋值运算符的结合行:从右向左
char ch;
while((ch=getchar())!=EOF)EOF是一个整形,将getchar的返回值存入ch中,将发生截断,提升为整形
在与EOF比较,如果在无符号集的机器上运行,将永不停止。 一般是CTRL+Z停止
!逻辑符:逻辑反 真变假,假变真
~ 求补,操作数中1变0, 0变1
逻辑与&& :逻辑左边的先判断,如果左边为假,则右边不进行判断
逻辑或|| : 先对左边进行判断,如果左边为真,则右边不再进行判断
故被称作短路求值