本文系列仅是本人根据个人理解对C/C++语言的一些理解笔记、介绍不喜勿喷,欢迎大神对本人文章中的错误进行指正
本文是本人基于近几年的学习、工作进行整理,结合自己所学写下C/C++笔记系列文章,也期待能给一些初入编程门径者一些启发和学习的资料
本人认为编程的基础就是对数据的理解,对数据类型的理解与灵活运用,可以使你的程序运行更加流畅……
一、编码
原码:最高位表示符号位,其他位表示大小
反码:正数反码与原码相同,负数:符号位不变,其他按位取反
补码:正数补码与原码相同,负数:反码+1
※补码的补码就是原码
二、运算符
运算符:运算法则、优先级别、结合性
运算所需变量为两个的运算符叫做双目运算符·或者要求运算对象的个数是2的运算符称为双目运算符。
单目运算符是运算所需变量为一个的运算符,又叫一元运算符
算术运算符:
+,-,*,/,%(取模或求余)
※: %两边都是整数类型
自增自减(++,--)自己本身+1,或者-1,自己必须是变量
前置:先自加(减),再运算
后置:先运算,再自加(减)
总结:前置优先级低于后置,前置效率高于后置
赋值运算符:=,+=,*=
其他运算符:
强转运算符:(类型)
逗号运算符:,
逗号表达式:从左往右依次运算,最后一个式子值,就是整个表达式的值
位运算符:
位运算: 参与运算的数以补码方式出现。
&按位与: 同1为1,否则为0;
~按位非:按位取反(0->1,1->0)
<<左移:低位补0。
>>右移:正数高位补0,负数高位补1;
^按位异或: 同则为0,异则为1;
| 按位或: 有1为1,否则为0;
不使用关系运算符,验证一个整数是正数还是负数?x>>31 判断一个数是否是2的N次幂?!(x&x-1)
位运算判断一个数奇数还是偶数?x&1
交换两个数不经过第三方变量
x=x^y;
y=x^y;
x=x^y;
例:
c = ~4 运算过程:
原码:00001010
反码:00001010
补码:00001010
~4 = 11110101运算结果(补码)看成是原码
10001010 运算结果对应的反码
10001011 运算结果对应的补码(补码的补码=原码)
c=4<<4 运算过程:
原码:00001010
反码:00001010
补码:00001010
<<4 = 10100000运算结果(补码)看成是原码
11011111 运算结果对应的反码
11100000 运算结果对应的补码(补码的补码=原码)
关系运算符:
关系运算符:>,<,>=,<=,!=,== 运算结果为bool型
逻辑运算:
逻辑运算符:!逻辑非、&&逻辑与、||逻辑或 运算结果为bool型
逻辑非:真则为假,假则为真
逻辑与:同真为真,否则为假.(当前面的式子为假时,后面的式子不参与运算)
逻辑或:有真为真,否则为假.(当前面的式子为真时,后面的式子不参与运算)
条件运算符:
条件运算符:?:
a?b:c a为真,结果为b;否则结果为c。