《C和指针》读书笔记(三)

来源:互联网 发布:水淀粉挡子弹知乎 编辑:程序博客网 时间:2024/04/27 15:45
C语言没有bool类型,所以只能用0代表假,非0代表真

尽量少用goto语句,能不弄则不用,goto语句只在一种情况下比较好,就是跳出多层嵌套循环时。

算术操作运算符:+ - *  / %  (%只接受整形)

左移:全部补零
右移:逻辑移位:补零 算数移位:根据符号位

//计算一个值中1的个数(最初版)
#include<iostream>
usingnamespace std;
int count_one_bits(unsignedintvalue)
{
           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(unsignedintvalue)
{
           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

逻辑与&& :逻辑左边的先判断,如果左边为假,则右边不进行判断
逻辑或|| : 先对左边进行判断,如果左边为真,则右边不再进行判断
故被称作短路求值



1 0