C++基础学习(03AM)

来源:互联网 发布:mac艺术字体下载大全 编辑:程序博客网 时间:2024/05/19 11:17

1.‘\0’、NULL、0和false为假,其余都为真

2.a<<3:表示a左移3位,相当于运算数*2的3次方(只要没有溢出)。

    >> 右边丢失,无符号左边补0 有符号非负补0负数补1

   例如:-1>>5还是-1 -1和0右移是没有任何意义的,还是 原数

             64>>2 变成16

    右移动n位数=原数除以2的n次方

    右移的位数超过总的位数则没有意义

3.两次异或之后数据还原

 a=10,b=20;a=a^b;b=a^b;a=a^b;则a=20  b=10

4.相关代码

#include <iostream>
using namespace std;


int main()
{
cout << ~-1 << endl;
cout << ~0 << endl;


int var = -1;
cout << ~var << endl;
cout << var << endl;


int v1=10;
int v2=20;
cout << v1++ << endl;
    cout << v2-- << endl;
cout << v1 << endl;
    cout << v2 << endl;
cout << endl;


int a=10,b=20;
a=a^b;
b=a^b;
a=a^b;
cout << a << endl;
    cout << b << endl;
//三次异或,交换两数 异或两数相反才为1 或运算,只要有1则为1 即或运算等于加运算(如果没有1重复的话)
    //按位与运算作用测试位数是否为1,1跟谁与得谁


return 0;
}

0 0
原创粉丝点击