c语言16位字节定义每一位,c语言(第二章数据类型运算符与表达式).ppt

本文详细介绍了C语言中数据类型的转换,包括二进制、八进制、十六进制与十进制之间的转换方法。此外,还讲解了变量的初始化、内存管理、数值表示方式(原码、反码和补码),以及C语言中的数据类型如整型、实型和字符型。同时,文章探讨了运算符的优先级和结合性,以及变量赋值时的注意事项,包括类型转换规则和复合赋值运算符的使用。最后,阐述了C语言中参数求值顺序的不确定性以及如何避免潜在的歧义问题。
摘要由CSDN通过智能技术生成

c语言(第二章数据类型运算符与表达式)

各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法:按权相加 字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1 数值的表示方法——原码、反码和补码 原码:最高位为符号位(正数为0、负数为1),其余各位为数值本身的绝对值。 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1 2.1 C的数据类型 数据类型总表 2.2 常量与变量 标识符 定义:用来标识变量、常量、函数、文件、数组等的字符序列。简单的说,标识符就是一个名字。 组成: 只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符(Trubo c规定) 命名原则: 见名知意 整型常量(整常数) 三种形式: 十进制整数:由数字0~9和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff 整型数据的溢出 实型数据的舍入误差 变量赋初值 在程序中常常需要对变量赋初值,以便使用变量。 在变量定义中赋初值的一般形式为: 类型说明符 变量1= 值1,变量2= 值2,……; 例如: int a=3; int b,c=5; float x=3.2,y=0x3f,z=0.75; char ch1='K',ch2='P'; 应注意,在定义中不允许连续赋值,如a=b=c=5是不合法的。 算术表达式和运算符的优先级和结合性 结合方向:从左向右,即运算对象先与左面的运算符结合。结合性是C语言的特性之一 优先级: - ---->* / % -----> + - (2) (3) (4) 如果优先级不同则先执行优先级高的,如果优先级相同的话就按照规定的结合方向进行运算 说明: 类型说明符和表达式都必须加括号(单个变量可以不加括号) 如果是(int)x+y,则只是转换x为整型,然后与y相加 强制转换得到所需类型的中间变量,原变量类型不变 对于子表达式中的求值顺序 (i++)+(i++)+(i++)=?设i的原值为3 C编译系统在处理时尽可能多的(自左向右)将若干个字符组成一个运算符(在处理标识符、关键字的时候也按照同一原则处理) 如:i+++j将会解释为(i++)+j,而不是i+(++j) 调用函数时,参数的求值顺序,C没有统一规定 printf(“%d,%d”,i,i++);多数系统中对参数求值的顺序是自右往左。 如i=3,输出4,3 printf(“%d,%d”,i++,i); 如i=3,输出3,3 避免歧异提倡写成: j=i++;printf(“%d,%d”,j,i); 类型转换规则 实型数据—>整型变量 舍弃实数的小数部分 int型数据—>long型变量 先将int数据的16位放到long型变量的低16位中,然后进行符号扩展 int型数据为正,long型变量高16位全为0; int型数据为负,long型变量高16位全为1; long 型数据—> int型变量 将long型数据的低16位放到int型变量中. unsigned int型数据—>long型变量 将int数据的16位放到long型变量的低16位中,高16位全为0 unsigned 型数据—>相同长度signed型变量 将内容原样送到变量中 signed型数据—>相同长度的unsigned变量 原样送到 写出下面赋值的结果,格中写了数值的是要将它赋给其他类型变量,将所有空格填上相应的数值 复合赋值运算符 种类:+= -= *= /= %= 《= 》= &= ^= |= 含义: exp1 op= exp2 ? exp1 = exp1 op exp2 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式” 一般形式: 先求表达式的值,将表达式的值赋于变量 赋值表达式的值与变量值相等。赋值表达式可嵌套 double float long unsigned int char,short 低 高 说明: 必定的转换 运算对象类型不同时转换 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double dou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值