目录
一,数据类型
1.基本数据类型
2.复合数据类型
二,进制
1.常用进制输入及输出
2.进制转换
三,运算符
四,转义字符
一,数据类型
1.基本数据类型
整数(这里的数据类型只可以存储整数):
整型---int
短整型---short int
长整型---long int
int i = 10;//这里i为整型变量,只可以存储整数
浮点数(可以存储小数,实数):
单精度浮点数---float
双精度浮点数---double
注意:浮点数的存储带来的问题是 float 和 double 都不能保证可以精确存储一个小数。
字符---char
当然,这些数据类型存储在计算机中,都占用了一定字节数,不同位系统中,同一数据类型的字节数可能有所不同,具体数据如下表:
2.复合数据类型
分为三类:结构体,枚举,共用体
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合
在面试时碰到的结构体的题,其中涉及到一个重要原则:内存对齐原则
内存对齐原则原理就是结构体中每个成员的首地址是自身内存大小的整数倍
在计算结构体A的字节数时,就需要使用到内存对齐原则
二,进制
进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
1.常用进制输入及输出
常用的进制为:二进制,八进制,十进制,十六进制(计算机只能识别二进制)
1)二进制
目前在各个领域中应用非常广泛的一种进制数就是二进制,在二进制中,每一位只能从0和1取,基数是2;其中高位和地位之间的运算关系遵守“逢二进一”,故称为二进制。
2)八进制
对于八进制来讲,实际用到的地方并不多,通过对十进制的了解。八进制的道理也是一样的,八进制的取值范围只能是0~7,中取一位。并且基数是8,其中高位和相邻地位之间的运算关系遵守逢八进一的原则,故称为八进制。八进制数在没有特别声明的情况下,通常以0(不是字母o)开头。
3)十进制
十进制在我们生活中随处可见,也是运用最为广泛的;十进制数中每一位的取值范围只能是0~9,基数是10;如果某一位超过9,则必须用多为数进行表示(逢10进一)。
4)十六进制
十六进制数的每一位有16个不同的数码,分别用0~9,A或a(10),B或b(11),C或c(12),D或d(13),E或e(14),F或f(15),表示,在没有任何说明的情况下,十六进制数以小写0x,或大写0X开头。并且基数是16,其中低位和高位之间运算关系尊“逢十六进一”,故称为16进制。
5)进制输出
%d表示以十进制输出 %o表示以八进制输出 %x或%X表示以十六进制输出
2.进制转换
二进制转换为十进制:与以上八进制转换为十进制同理,
1011与之对应的十进制数可以表示为:1×2³+0×2²+1×2¹+1×2º=十进制数:11(注:若二进制后有小数点,则小数点后一位就可以表示为该位置上的数乘以2的负一次方)
八进制转换成十进制:
031 与之等价的十进制数可以表示为:3×8¹+1×8º = 十进制数 :25(注:若八进制后有小数点,则小数点后一位就可以表示为该位置上的数乘以8的负一次方)
02345与之等价的十进制数可以表示为:2×8³+3×8²+4×8¹+5×8º = 十进制数:1253
十进制转换为二进制:
与八进制所对应的十进制大同小异,差距就是十进制转换为二进制时,只有余数为1时才停止除二取余操作。
十进制转换为八进制:
由八进制转换成十进制的规律可以得出,十进制转换为八进制可以这样表示
与十进制数18等价的八进制数为:18÷8 (取商和余数,若余数大于8,则继续除8) = 22
二进制转化为八进制
因为2³为八,所以二进制转换为8进制时,三位二进制表示一位八进制。(从二进制的右边开始数,每三位二进制表示一位八进制,当最左边的二进制数不足三位时,在其左边填0补齐三位二进制)
八进制转化为二进制
一位数字转化为相应的三位二进制数排列,若最左边有多余的0,0可以删除。
二进制转化为十六进制
与二进制转化为八进制方法类似,四位二进制表示一位十六进制。(从二进制的右边开始数,每四位二进制表示一位十六进制,当最左边的二进制数不足四位时,在其左边填0补齐四位二进制)
十六进制转化为二进制
一位数字转化为相应的四位二进制数排列,若最左边有多余的0,0可以删除。
三,运算符
1.算术运算符 :+(加) -(减) *(乘) /(除) %(取余)
算术运算符中 加 减 乘 与我们平时使用方法相同,需要注意的就是 除 和 取余
1)/(除)
整数/整数=整数
除数或被除数中若有小数,则结果为小数
2)%(取余)
取余(%)的运算对象必须为整数,结果是整除以后的余数,余数的符号与被取余的对象的符号相同。
-13%3=-1 13%(-3)=1
2.关系运算符 :>(大于) >=(大于等于) <(小于) <=(小于等于) !=(不等于) ==(等于)
3.逻辑运算符 :! (非) &&(且) ||(或)
关于&&(且)和 ||(或)的使用:若&&左边表达式为假,右边表达式不执行(&&有假即假)
若||左边表达式为真,右边表达式不执行(||有真即真)
4.赋值运算符: = += *= /= -=
a=b表示将b的值赋值给a;
a+=1表示a=a+1,将a+1后的值赋值给a(其余三个原理相同)
运算符优先级别 :算数 > 关系 > 逻辑 > 赋值
5.自增自减(以自增为例)
1)分类 :前自增——++i
后自增——i++
2)比较 :
相同点 :最终结果都是使 i 的值 +1
不同点 :前自增表达式表示 i+1后的值,后自增表达式表示 i+1前的值
6.三目运算符
例如 :A ? B : C 其中 ?:两者合起来称为三目运算符,他等价于下方程序:
if (A) B; else C;



