#include <iostream> using namespace std; int main() { int a[]={14,4,2,7,64,73,21,4,55,66}; int n=0; for(int i=1;i<sizeof(a)/sizeof(a[0]);++i){//C++中不能直接获得数组中元素个数 n+=(a[i-1]>a[i]);//算术类型转换为bool时,0转换为false,其他值(包括负值)转换为true。将bool转换为算术类型时,true转换为1,false转换为0。 } cout<<"n:"<<n; return 0; } //获得逆序对的个数
1、十六机制和八进制
一个十六进制数对应4个二进制位,十六进制数以0x开头。一个八进制对应3个二进制位,八进制数以0开头。
2、原码和补码
计算机在内存中是以补码的形式来存储数值的,正数的补码就是其原码本身,负数的补码是其原码取反加1,另外,对于有符号数,最高位0表示正数,最高位1表示负数。
3、位运算
左移一位,相当于原变量值乘以2,如果有符号数左移一位符号位却发生了变化说明其值乘2之后溢出了,就是超出了数据类型所能变大的最大值。右移一位表示除以2。
4、初始化方式
之前一般使用int a=0;这种初始化形式
还有一种更简洁的初始化形式:
int a(0);//用小括号初始化
5、强制转换
C风格强制转换,double a=2.9;
形式一:int xx=int(a);
形式二:int xx=(int)a;
C++的形式:
类型转换操作符<类型说明符>(表达式)
int xx=static_cast<int>(a);
类型操作说明符可以是:
const_cast,dynamic_cast,reinterpret_cast,static_cast
6、C风格字符串