c语言 直接舍弃其余小数,数据类型、运算符与表达式c语言.ppt

第2章数据类型 运算符与表达式 2 1预备知识 2 2C语言的数据类型 2 3常量和变量 2 4整型数据 2 5实型数据 2 6字符型数据 2 7算术运算与算术表达式 2 8赋值运算与赋值表达式 2 9逗号运算符和逗号表达式 2 1预备知识 计算机中数的表示及进制转换二进制 八进制 十进制 十六进制各种进制之间的转换 各种进制之间的转换 整数 二进制 八进制 十六进制转换成十进制方法 按权相加 十进制转换成二进制 八进制 十六进制原理 方法 连续除以基 从低到高记录余数 直至商为0 二进制与八进制之间的转换二进制转换成八进制 从右向左 每3位一组 不足3位左补0 转换成八进制八进制转换成二进制 用3位二进制数代替每一位八进制数 例 1101001 2 001 101 001 2 151 8 例 246 8 010 100 110 2 10100110 2 000 0001 1010 2011 3100 4101 5110 6111 7 二进制与十六进制之间的转换二进制转换成十六进制 从右向左 每4位一组 不足4位左补0 转换成十六进制十六进制转换成二进制 用4位二进制数代替每一位十六进制数 例 11010101111101 2 0011 0101 0111 1101 2 357D 16 例 4B9E 16 0100 1011 1001 1110 2 100101110011110 2 0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1 数值的表示方法 原码 反码和补码原码 最高位为符号位 其余各位为数值本身的绝对值反码 正数 反码与原码相同负数 符号位为1 其余位对原码取反补码 正数 原码 反码 补码相同负数 最高位为1 其余位为原码取反 再对整个数加1 负数补码转换成十进制数 最高位不动 其余位取反加1 例补码 11111001取反 10000110加1 10000111 7 2 2数据类型数据类型总表 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 2 3常量和变量 2 3 1常量1 常量的概念在程序运行过程中 其值不能被改变的量称为常量 2 常量的分类 1 整型常量例 123 2 实型常量例 4 56 3 字符常量例 a 4 符号常量例 PI 2 3 2变量1 变量的概念在程序运行过程中 其值可以被改变的量称为变量 2 变量的两个要素 1 变量名 每个变量都必须有一个名字 变量名 变量命名遵循标识符命名规则 2 变量值 在程序运行过程中 变量值存储在内存中 在程序中 通过变量名来引用变量的值 标识符命名规则有效字符 只能由字母 数字和下划线组成 且以字母或下划线开头 有效长度 随系统而异 但至少前 个字符有效 如果超长 则超长部分被舍弃 例如 由于student name和student number的前 个字符相同 有的系统认为这两个变量 是一回事而不加区别 在TCV2 0中 变量名 标识符 的有效长度为 个字符 缺省值为 C语言的关键字不能用作变量名 注意 C语言对英文字母的大小敏感 即同一字母的大小写 被认为是两个不同的字符 习惯上 变量名和函数名中的英文字母用小写 以增加可读性 例 在C语言中 变量名total与变量名TOTAL ToTaL tOtAl等是同一个变量吗 标识符命名的良好习惯 见名知意 所谓 见名知意 是指 通过变量名就知道变量值的含义 通常应选择能表示数据含义的英文单词 或缩写 作变量名 或汉语拼音字头作变量名 例如 name xm 姓名 sex xb 性别 age nl 年龄 salary gz 工资 4 变量的定义与初始化在 语言中 要求对所有用到的变量 必须先定义 后使用 且称在定义变量的同时进行赋初值的操作为变量初始化 2 4整型数据 2 4 1整型常量整型常量即整常数 在 语言中可用三种形式表示 1 十进制 例如10 36 2 八进制 以数字 开头 例如012 3 十六进制 以数字 小写字母x开头 例如0 x36 2 4 2整型变量1 分类根据占用内存字节数的不同 整型变量又分为 类 1 基本整型 类型关键字为int 2 短整型 类型关键字为short int 3 长整型 类型关键字为long int 4 无符号整型 无符号型又分为无符号基本整型 unsigned int 无符号短整型 unsignedshort 和无符号长整型 unsignedlong 三种 只能用来存储无符号整数 2 占用内存字节数与值域上述各类型整型变量占用的内存字节数 随系统而异 在16位操作系统中 一般用 字节表示一个int型变量 且long型 字节 int型 字节 short型 字节 显然 不同类型的整型变量 其值域不同 例 PC机中的一个int型变量 其值域为 215 215 1 即 32768 32767 一个unsigned型变量的值域为 0 216 1 即0 65535 可用sizeof 类型标识符 测量 如何定义整型变量 inti 定义为整型变量 i 10 给i赋以整数10 inta 10 shortb 30 longc 20 unsignedintnumber 20 例 definePRICE30main intnum total num 10 total num PRICE printf total d total 2 5实型数据 2 5 1实型变量 语言的实型变量 分为两种 1 单精度型 类型关键字为float 一般占 字节 位 提供 位有效数字 2 双精度型 类型关键字为double 一般占 个字节 提供15 16位有效数字 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 2 5 2实型常量实型常量即实数 在 语言中又称浮点数 其值有两种表达形式 1 十进制形式 例如3 14 9 8 2 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 例 definePRICE30 52main floatnum total num 10 89 total num PRICE printf total f total 2 6字符型数据 2 6 1字符常量字符常量的定义用一对单引号括起来的单个字符 称为字符常量 例如 如 a A n 101 字符常量的值 该字符的ASCII码值如 A 65 a 97 0 48 n 10转义字符反斜线后面跟一个字符或一个代码值表示如 101 A 012 n 376 x61 a 60 0 483 例 main printf abc tde rf tg n printf h ti b bjk 例转义字符举例main printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 2 6 2字符变量字符变量的类型关键字为char 一般占用1字节内存单元 变量值的存储字符变量用来存储字符常量 将一个字符常量存储到一个字符变量中 实际上是将该字符的ASCII码值 无符号整数 存储到内存单元中 例如 charch1 ch2 定义两个字符变量 ch1 ch2 ch1 a ch2 b 给字符变量赋值 一个字符型数据 既可以字符形式输出 也可以整数形式输出 main charch1 ch2 ch1 a ch2 b printf ch1 c ch2 c n ch1 ch2 printf ch1 d ch2 d n ch1 ch2 main charch1 ch2 ch1 a ch2 B 字母的大小写转换 printf ch1 c ch2 c n ch1 32 ch2 32 用字符形式输出一个大于256的数值 printf ch1 200 d n ch1 200 printf ch1 200 c n ch1 200 printf ch1 256 d n ch1 256 printf ch1 256 c n ch1 256 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 不同类型数据间的转换 除上面讲的自动转换外 还有强制转换 例如 double a 等价于 double a 将变量a的值转换成double型 int x y 将x y的结果转换成int型 float 5 2 等价于 float 5 2 将5转换成实型 再除以2 2 5 float 5 2 将5整除2的结果 2 转换成实型 2 0 2 7算术运算与算术表达式 1 五种基本算术运算符 1 关于除法运算 C语言规定 两个整数相除 其商为整数 小数部分被舍弃 例如 5 2 2 2 关于求余数运算 要求两侧的操作数均为整型数据 否则出错 2 运算符的优先级与结合性1 按运算符的优先级高低次序执行 例如 先乘除后加减 2 如果在一个运算对象 或称操作数 两侧的运算符的优先级相同 则按 语言规定的结合方向 结合性 进行 例如 算术运算符的结合方向是 自左至右 即 在执行 a b c 时 变量b先与减号结合 执行 a b 然后再执行加c的运算 3 自增 自减运算符 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b k 4 j 4 k 3 j 4 4 3 c 20 a 4 c 15 a 4 说明 不能用于常量和表达式 如5 a b 优先级 2 8赋值运算与赋值表达式 1 赋值运算赋值符号 就是赋值运算符 它的作用是将一个表达式的值赋给一个变量 例a 3 d func c d 2 y float 5 2 2 复合赋值运算C语言规定的10种复合赋值运算符如下 说明 结合方向 自右向左左侧必须是变量 不能是常量或表达式 赋值表达式的值与变量值相等 且可嵌套 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例3 x 2 y a b 3 例floatf inti i 10 f i 则f 10 0 例inti i 2 56 结果i 2 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 2 9逗号运算符和逗号表达式 形式 表达式1 表达式2 表达式n结合性 从左向右逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 1 2 3 3 2 3

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值