day2 C语言基础 进制转换与基本数据类型
计算机中使用的数据单位bit 比特位 0/1byte 字节 1 byte 8bit 可以表示一个英文字母kB 千字节 1024 byteTB 兆字节 1024*1024 byte 10^6byteTB 吉字节 1024*1024*1024 byte 10^9byteTB 太字节 1024*1024*1024*1024 byte 10^12byte进制转换十进制 , 逢十进 10 1 2 3 4 5 6 7 8 9二进制 逢二进 10 1八进制 逢八进 10 1 2 3 4 5 6 716进制 逢16进 10 1 2 3 4 5 6 7 8 9 a b c d e f10- 223 对10进制数 一直除2 直到商为0 。并且记录余数逆序组成的序列就是 对应的二进制数10-823 对10进制数 一直除8 直到商为0 。并且记录余数逆序组成的序列就是 对应的八进制数10-1623 对10进制数 一直除16 直到商为0 。并且记录余数逆序组成的序列就是 对应的十六进制数2- 10 对应二进制位 乘以对应 权值 所有只相加2-8 3个2进制位为一组是一个8进制数2-16 4个2进制位为一组是一个16进制数c语言关键字C 语言基础第一章 基本数据类型 运算符表达式1.基本数据类型在c语言中每种数据都有对应数据类型有了数据类型之后计算机就可以操作数据了2类1. 基本数据类型整型类型浮点类型字符类型缺省类型 void 函数的返回值函数参数布尔类型 bool stdbool.h 1 ture 0 false2. 构造数据类型(用户自定义类型)结构体共用体枚举整数类型1.可以分为有符号和无符号2. 整数数据在内存都是以补码形式存储的。如果是正整数的话补码就是原码本身。如果是负数的话需要计算补码先获得原码(先绝对值再转二进制再去掉符号位) 对原码取反操作(原码中的0变1,1变0) 获得反码对反码 1 操作 。 加入以short 为例 这个反码是 15bit 在加上最高位(符号位) 。总共16bit。前提 64bit 64位操作系统3. sizeof 是一个关键字 sizeof(a) , sizeof(10),sizeof(int) .获得对应类型的数据在内存中占用的空间是多少个字节。类型 内存大小 值域short 短整型 有符号 signed short2 byte(16bit) -32768 - 32767unsigned short 短整型 无符号2 byte 0 - 65535 2^16 -1int 整型 有符号 signed int 4 byte (32bit) -21 亿 - 21亿unsigned int 整型 无符号long 长整形 有符号unsigned long 长整型 无符号4 byte 0 - 42亿8 byte(64bit) -450亿 - 450亿8 byte 0 -900亿字符类型char 有符号 字符 1 byte (8bit) -128 - 127unsiged char 无符号 1 byte (8bit) 0-255字符类型的本质其实是 整数。也就是 字符在存到内存中存储的是字符对应的编码。在c语言中char 类型表示单个字符能够从键盘上输入的字符大小英文字母小写字母标点符号一些特殊的控制字符也可以使用char 表示。(转义字符)a - 97 - 0110 0001 内存中的存储方式。 1byte 8bit位ascii 编码man asciichar shortintlong浮点类型默认情况浮点数都是符号。小数 。3.14 5.1231231231float 单精度 4byte 32bit -3.402823^-38 - 3.402823^38 6-7位小数以内double 双精度 8byte 64bit -1.797693^-308 - 1.797693^308 14位小数以内IEEE 754 内存储存方式float 1bit(符号位) 8bit(指数) 23bit(尾数)double 1bit(符号位) 11bit(指数) 52bit(尾数)如何存储1.把整数部分转为二进制2. 小数部分的转换给小数部分一直乘 2 直到小数点后为0 位置。 保留每次的 整数部分。3. 移位操作 把小数向左移动最高为保留 1一个二进制的1 。记录移动的位数。 127 获得指数位。4. 把移位后的小数部分放到尾数部分。5. 如果原来的数字是负值那么最高位1 如果是正值 最高位是0 。2.变量 常量常量含义 在程序运行过程中不会发生改变的量。 又是有数据类型。常量可以直接使用分类整形常量浮点的常量字符常量字符串常量变量含义 在程序运行过程中可以发生变化的量。 都是有数据类型。1.变量在使用之前需要先定义在使用。2.变量的定义数据类型 变量名变量名(标识符)的规则1 只能字母数字下划线。不能数字开头。2 变量名不要和系统的 关键字 重名。3变量名不要和系统的 函数 重名4变量名 见名知意。