05,标准C
2013-09-05 22:25
169 查看
/*
达内学习 标准C day05 2013-9-5
预习
1,其他位运算符
2,三目操作符
3,类型转换
4,分支结构 (if ,switch..case)
5,循环(for)
*/
回顾:
1,数据类型
2,二进制和八进制转换
3,八进制和十六进制
作业:
1,十进制转二进制
2,时间
使用二进制表示负数时不可以使用-号
一个字节中存入9个数位,最高位截断,剩下低八位
1 0000 0000 = 0000 0000 =0
1 0000 0000 - 0011 1010
=1111 1111 + 1 - 0011 1010
=1111 1111 - 0011 1010 + 1
负数补码是取反加1
负数二进制的计算方法
1,求出相反数(对应非负数),的二进制
2,对这个二进制数做按位取反加一
使用上述方法计算出来的结果就是补码,可以直接存储在计算机里
0000 0000 的补码还是0000 0000
1000 0000 规定是数据类型中的最小数 如-128
任何数据类型中有两个特殊的数字,分别是 全零 和 只有首位是1 (自己相加得0),后一个数用来表示这个数据类型中的最小数 如:-128
根据一个二进制补码计算相反数的二进制补码也可以取反加1,互为补码
所有的有符号数据的最高位叫做符号位 符号位为0表示是非负数,符号为1表示为负数
无符号数据是没有符号位的,符号位不能等同于正负号
整数之间的赋值要保持二进制不变
有符号数据扩充的时候在前面所有位都补充符号位,无符号数据前面扩充0 char ch=128 int a=ch ->ch=-128 a=128
C语言中可以是使用(+-*/%)
,也可以当操作符 可以把两个无关的表达式连接在一起 合并后的结果是最后一个表达式的结果
,操作符号的优先级非常低
printf("计算结果是%d\n",(1+2,3+4)); //输出为3+4=7
=赋值操作符可以用来改变变量的内容
赋值操作符的左边必须是左值(变量),右边必须能当数字使用
赋值操作符的优先级也很低,但是比,的优先级高
一条语句中可以包含多个赋值操作符 先运算右边的 从右到左
赋值操作符的优先级也很低,但是比,的优先级高
双目运算符需要两个数字联合使用
很多双目操作符可以和复制操作符合并形成复合赋值操作符(+= -+ *= /=)
复合赋值操作符也是双目操作符
复合赋值操作符也要求左边是变量,右边是可以但数字使用的
num += 6;等于num = num +6;
复合赋值操作符中但双目操作符优先级和赋值操符号一样低
自增(++)和自减(--)也是C语言中可以使用的操作符,用于对一个变量进行加一或者减一操作
他们都是单目操作符 他们只能对变量进行操作也是C语言中可以使用的操作符,用于对一个变量进行加一或者减一操作
他们都是单目操作符 他们只能对变量进行操作
分成前操作和后操作两种
前操作的优先级非常高 后操作的优先级最低
不要在一条语句中对一个变量进行多次自增或自减
num1 = num++ + ++num; //先做++num =6 后做加法+ 然后赋值 最后num++
num=num2++ + ++num2; //num2是全局变量,先算++num2,后算加法 此时前面的num2里面还是5,所有num=5+6,然后num2++ =5 【编译器特异性】
布尔值 包括真(true)或假(false)
bool类型用来描述布尔值,为了使用布尔需要把stdbool.h文件合并进来
bool类型并不是C语言官方提供认可的类型
布尔值在计算机内部仍然用整数表示,真用1表示,假用0表示
C语言中所有整数都可以当布尔值来用 0当成false 所有其他整数值当成真
逻辑操作符用来编写逻辑表达式
逻辑表达式的计算结果必须是布尔值
双目逻辑操作符包括== != != < > <= >=
单目逻辑操作服!对一个布尔值求反
逻辑操作符比算术操作符的优先级低 //计算顺序不明确的时候加上()可以让程序易懂
若多个逻辑关系之间需要使用&&或||连接
只有当所有基本表达式计算结果都是true的时候&&连接后的表达式结果才是true 否则是false
只要有一个逻辑表达式的计算结果是true,则用||连接后的复杂表达式计算结果就是true
&&和||当前面计算已经可以得出表达式结果时,出现短路,后面的表达式不再计算
位操作符用来对二进制形式进行计算
双目位操作符包括按位与&,按位或|,按位异或^
双目位操作符都是先把参与计算的数据的二进制形式表达出来,然后两个数字的对应数位进行计算
只有 1 & 1=1 其他的都是0;
按位与(&)可以把一个数字中的某个二进制数位清除成0
某个数位和0做按位与的结果一定是0
某个数位和1做按位与的结果不变
按位或(|)对应数位上的数字进行或计算 只0 | 0 =0 其他的都是1
按位或可以把一个数字中的某些数位设置成0
某个数位和0做按位或结果不变
某个数位和1做按位或结果是1
按位异或(^)把对应上数位上的数进行异或运算 只有1 ^ 0=1 其他的都是0
按位异或(^)当两个数不同时得1,可以把一个数的某些数位求反
某个数位和0做按位异或结果不变
某个数位和1做按位异或便相反数字
作业:
1.如果年份能被4整除但不能被100整除则这个年份是闰年,如果年份可以被400整除则也是闰年,假设变量year中记录了一个年份,编写一个逻辑表达式当这个年份是闰年的时候结果是true否则是false
(year%400==0)||((year%4==0)&&(year%100!=0)) (!(year%400))||((!(year%4))&&(year%100))
2.使用一个char类型变量ch的最低三个二进制控制红绿的。bit0控制绿灯 bit1控制黄灯 bit2控制红灯 。数位是1点亮是0熄灭
1)编写语句在不知道变量内容的情况下点亮红灯熄灭另外两个灯 ch|100
2)如果现在绿灯点亮,另外两个灯熄灭,编写语句熄灭绿灯点亮黄灯。ch^011
达内学习 标准C day05 2013-9-5
预习
1,其他位运算符
2,三目操作符
3,类型转换
4,分支结构 (if ,switch..case)
5,循环(for)
*/
回顾:
1,数据类型
2,二进制和八进制转换
3,八进制和十六进制
作业:
1,十进制转二进制
2,时间
使用二进制表示负数时不可以使用-号
一个字节中存入9个数位,最高位截断,剩下低八位
1 0000 0000 = 0000 0000 =0
1 0000 0000 - 0011 1010
=1111 1111 + 1 - 0011 1010
=1111 1111 - 0011 1010 + 1
负数补码是取反加1
负数二进制的计算方法
1,求出相反数(对应非负数),的二进制
2,对这个二进制数做按位取反加一
使用上述方法计算出来的结果就是补码,可以直接存储在计算机里
0000 0000 的补码还是0000 0000
1000 0000 规定是数据类型中的最小数 如-128
任何数据类型中有两个特殊的数字,分别是 全零 和 只有首位是1 (自己相加得0),后一个数用来表示这个数据类型中的最小数 如:-128
根据一个二进制补码计算相反数的二进制补码也可以取反加1,互为补码
所有的有符号数据的最高位叫做符号位 符号位为0表示是非负数,符号为1表示为负数
无符号数据是没有符号位的,符号位不能等同于正负号
整数之间的赋值要保持二进制不变
有符号数据扩充的时候在前面所有位都补充符号位,无符号数据前面扩充0 char ch=128 int a=ch ->ch=-128 a=128
C语言中可以是使用(+-*/%)
,也可以当操作符 可以把两个无关的表达式连接在一起 合并后的结果是最后一个表达式的结果
,操作符号的优先级非常低
printf("计算结果是%d\n",(1+2,3+4)); //输出为3+4=7
=赋值操作符可以用来改变变量的内容
赋值操作符的左边必须是左值(变量),右边必须能当数字使用
赋值操作符的优先级也很低,但是比,的优先级高
一条语句中可以包含多个赋值操作符 先运算右边的 从右到左
赋值操作符的优先级也很低,但是比,的优先级高
双目运算符需要两个数字联合使用
很多双目操作符可以和复制操作符合并形成复合赋值操作符(+= -+ *= /=)
复合赋值操作符也是双目操作符
复合赋值操作符也要求左边是变量,右边是可以但数字使用的
num += 6;等于num = num +6;
复合赋值操作符中但双目操作符优先级和赋值操符号一样低
自增(++)和自减(--)也是C语言中可以使用的操作符,用于对一个变量进行加一或者减一操作
他们都是单目操作符 他们只能对变量进行操作也是C语言中可以使用的操作符,用于对一个变量进行加一或者减一操作
他们都是单目操作符 他们只能对变量进行操作
分成前操作和后操作两种
前操作的优先级非常高 后操作的优先级最低
不要在一条语句中对一个变量进行多次自增或自减
num1 = num++ + ++num; //先做++num =6 后做加法+ 然后赋值 最后num++
num=num2++ + ++num2; //num2是全局变量,先算++num2,后算加法 此时前面的num2里面还是5,所有num=5+6,然后num2++ =5 【编译器特异性】
布尔值 包括真(true)或假(false)
bool类型用来描述布尔值,为了使用布尔需要把stdbool.h文件合并进来
bool类型并不是C语言官方提供认可的类型
布尔值在计算机内部仍然用整数表示,真用1表示,假用0表示
C语言中所有整数都可以当布尔值来用 0当成false 所有其他整数值当成真
逻辑操作符用来编写逻辑表达式
逻辑表达式的计算结果必须是布尔值
双目逻辑操作符包括== != != < > <= >=
单目逻辑操作服!对一个布尔值求反
逻辑操作符比算术操作符的优先级低 //计算顺序不明确的时候加上()可以让程序易懂
若多个逻辑关系之间需要使用&&或||连接
只有当所有基本表达式计算结果都是true的时候&&连接后的表达式结果才是true 否则是false
只要有一个逻辑表达式的计算结果是true,则用||连接后的复杂表达式计算结果就是true
&&和||当前面计算已经可以得出表达式结果时,出现短路,后面的表达式不再计算
位操作符用来对二进制形式进行计算
双目位操作符包括按位与&,按位或|,按位异或^
双目位操作符都是先把参与计算的数据的二进制形式表达出来,然后两个数字的对应数位进行计算
只有 1 & 1=1 其他的都是0;
按位与(&)可以把一个数字中的某个二进制数位清除成0
某个数位和0做按位与的结果一定是0
某个数位和1做按位与的结果不变
按位或(|)对应数位上的数字进行或计算 只0 | 0 =0 其他的都是1
按位或可以把一个数字中的某些数位设置成0
某个数位和0做按位或结果不变
某个数位和1做按位或结果是1
按位异或(^)把对应上数位上的数进行异或运算 只有1 ^ 0=1 其他的都是0
按位异或(^)当两个数不同时得1,可以把一个数的某些数位求反
某个数位和0做按位异或结果不变
某个数位和1做按位异或便相反数字
作业:
1.如果年份能被4整除但不能被100整除则这个年份是闰年,如果年份可以被400整除则也是闰年,假设变量year中记录了一个年份,编写一个逻辑表达式当这个年份是闰年的时候结果是true否则是false
(year%400==0)||((year%4==0)&&(year%100!=0)) (!(year%400))||((!(year%4))&&(year%100))
2.使用一个char类型变量ch的最低三个二进制控制红绿的。bit0控制绿灯 bit1控制黄灯 bit2控制红灯 。数位是1点亮是0熄灭
1)编写语句在不知道变量内容的情况下点亮红灯熄灭另外两个灯 ch|100
2)如果现在绿灯点亮,另外两个灯熄灭,编写语句熄灭绿灯点亮黄灯。ch^011
相关文章推荐
- APUE读书笔记-05标准输入输出库(6)
- [05]APUE:标准 I/O 库
- APUE读书笔记-05标准输入输出库(7)
- 05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp) 推荐
- APUE读书笔记-05标准输入输出库(8)
- 05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)
- 标准日本语 05_001
- 05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)
- 标准日本语 05_001
- 标准日本语 05_002
- APUE读书笔记-05标准输入输出库(1)
- 标准日本语 05_002
- APUE读书笔记-02UNIX标准和实现-05一些限制
- 标准日本语 05_004
- JS工作随笔 05 JS格式化Thu May 12 2016 08:00:00 GMT+0800 (中国标准时间)
- APUE读书笔记-05标准输入输出库(2)
- 标准日本语 05_005
- APUE读书笔记-05标准输入输出库(3)
- APUE读书笔记-05标准输入输出库(4)
- APUE读书笔记-05标准输入输出库(5)