C语言学习(1) C 语言学前储备知识一、计算机如何执行 C 语言程序计算机基本组成部分 运算器、控制器、存储器、输入设备、输出设备运算器 控制器——CPUGPU/NPU存储器内存掉电数据丢失、空间小、读写效率高、价格昂贵硬盘掉电数据不丢失、空间大、读写效率低cache高速缓存设备 寄存器1.编译器编译的二进制指令集合存放硬盘2. 当执行该二进制程序时该程序通过CPU被加载在内存中3. CPU通过总线访问内存中的数据并做运算和处理二、计算机中国数据单位bit 位 表示为0或1Byte 字节计算机内存存储单位8bits1byteKb 1024 bytes1 kbMb 1024 kb1 mbGb 1024 mb1 GbTb 1024 gb1 tb1.进制转换二进制0 1八进制0 1 2 3 4 5 6 7十进制0 1 2 3 4 5 6 7 8 9十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F①二进制、八进制、十六进制——十进制方法对应位数据乘以权重累加求和二进制—— 十进制eg.0011 0101权值 2^32^22^12^0累加求和1*2^01*2^21*2^41*2^5 53八进制—— 十进制eg.0123权值 8^28^18^0累加求和3*8^0 2*8^1 1*8^2 83十六进制—— 十进制eg.0x123权值16^216^116^0累加求和3*16^0 2*16^1 1*16^2 291②十进制转二进制、八进制、十六进制方法为短除法要转数据 / 进制数取得的余数逆序十进制—— 二进制eg.123——0111 1011十进制—— 八进制eg.123——0173十进制——十六进制eg.123——7B③二进制转换为十六进制、八进制运用8421编码方式进行转换以4个二进制为一组不够的从左边补零——十六进制以3个二进制为一组不够的从左边补零——八进制eg.00111100 0010 1000—— 0x3C28eg.000011 110 000 101 000——036050基本数据类型、表达式、运算符一、C语言基本数据类型1.基本数据类型1.1整数类型1.1.1有符号整型正负数都可以表示最高位为符号位0表示正数1表示负数其他位为数据位1.1.2无符号整型只可表示正数Short短整型 在内存中占2字节unsigned short最大值为1111 1111 1111 1111——215-132767最小值为0000 0000 0000 0000——-32768signed short最大值为1111 1111 1111 1111——216-165535最小值为1000 0000 0000 0000——0int:整型在内存中占4字节unsigned int 最大值1111 1111 1111 1111 1111 1111 1111 1111232-1最小值0000 0000 0000 0000 0000 0000 0000 00000signed int 最大值0111 1111 1111 1111 1111 1111 1111 1111231-1最小值1000 0000 0000 0000 0000 0000 0000 0000-231Long:长整型在内存中占8字节unsigned long最大值264-1最小值0signed long最大值263-1最小值-263关键字Sizeof数据类型获取某种数据类型在内存中所占的字节利用printf语句将所占的字节数打印出来可以输出里面的内容显示到终端printf(hello world\n);printf(%ld\n, sizeof(short));%d表示一个格式控制符占位会将后面的值替换到%开头的位置%d——控制十进制整形int数据输出%ld——控制十进制整形long数据输出%c——控制以字符方式输出1.2整形数据在内存中的存储方式无符号整型原码补码原码有符号整型正数原码 负数补码补码反码1例. -2026原码1000 0111 1110 1010反码1111 1000 0001 0101符号位不变按位取反补码1111 1000 0001 0110补码反码12.整形数据的溢出Unsigned short 最大值1——最小值最小值1——最大值3.字符类型char大小在内存中占1个字节a~zA~Z数字类字符0 1 2 9( % # $转义字符 \n\r \v \t都占1个字符ASCII转换标准字符和整形数据之间的转换标准图1 部分ASCII转换表Unsigned char无符号字符型最大值 1111 1111255最小值 0000 00000signed char有符号字符型最大值 0111 1111最小值 1000 00004.浮点类型用来表示小数的数据类型4.1 float单精度浮点型精度范围6~8位 在内存中占用4个字节IEEE标准规定float类型在内存中以符号位1bits、指数位8bits、尾数位23bits的方式存储例. 8.125 float符号位01000.0001——1.000001*103指数位1273130——1000 0010尾数位0000 0100 0000 0000 0000 000内存 0100 0001 0000 0010 0000 0000 0000 00000x 4 1 0 2 0 0 0 04.2 double双精度浮点型精度范围12~16位在内存中占用8个字节IEEE标准规定double类型在内存中以符号位1bits、指数位11bits、尾数位52bits的方式存储例. 6.25 110.01——1.1001*102符号位0指数位102321025——100 0000 0001尾数位1001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000内存 0100 0000 0001 1001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000——0x40190000000000005.缺省类型空型void函数的形参和返回值不传递参数、不返回数据6.泊尔类型c在内存中占1字节 true/false 1/0

本月热点