上周六参加微软实习生笔试受打击了,考的C++的东西不难,但很细节,决定从头开始复习一下C++了

1、C++的标识符第一个字母必需是大写字母、小写字母或下划线,其他字符可由大写字母、小写字母、下划线或数字0-9组成,不能包含空格和“+、-、;”之类的特殊字符,大小写敏感

2、整型变量及其取值范围

在内存中,数值是以补码形式表示的,一个正整数的补码和该数的源码相同,求负数的补码:符号位为1不变,其他位将该数的绝对值的二进制形式按位取反再加一。

类型 长度(字节) 取值范围
char(signed char) 1 -128~127即-2^7~(2^7-1)
unsigned char 1 0~255即0~(2^8-1)
short int 2 -32768~32767即-2^15~(2^15-1)
unsigned short int 2 0~65535即0~(2^16-1)
int(signed int) 4 -2^31~(2^31-1)
unsigned int 4 0~(2^32-1)
long 4 -2^31~(2^31-1)

3、整型数据的溢出

 
  1. int main()    
  2.     {    
  3.       int a,b;  
  4.       a=2147483647;  
  5.       b=a+1;  
  6.       printf("%d,%d\n",a,b);  
  7.         return 0;       
  8.     }    

运行结果:

2147483647,-2147483648

一个int型变量只能表示-2147483648到2147483647的,如果不在此范围时发生溢出,但运行时并不报错,它好像汽车里程表一样达到最大值后,又从最小值开始计数

4、浮点数

类型 长度(字节) 取值范围
float 4 -3.4*10^38~3.4*10^38
double 8 -1.7*10^308~1.7*10^308

dloat保存的字节格式如下:

地址 +0 +1 +2 +3
内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
          1           8                 23
这里
S 代表符号位,1是负,0是正
E 偏移127的幂,二进制阶码=(EEEEEEEE)-127
M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精度。

指数部分 占用8-bit的二进制数,可表示数值范围为0-255。 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -127到128.其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

  float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;

double型同理,但E 偏移应该减去1023,

 

 

很基础,表笑我,待续待续