您的位置:首页 > 编程语言 > C语言/C++

C++基础学习(03AM)

2015-05-31 11:42 281 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: