04,运算符基础
2016-08-31 21:57
155 查看
操作符用来表示对数字的处理规则
操作符可以分为三种:
单目操作符
双目操作符
三目操作符
自增,自减操作当 数字 使用时,前操作是修改之后的数字,后操作是修改之前的数字
不要在一条语句里对同变量多次进行自增自减计算;比如:num = num1++ + ++num1
***************************************************************
位操作符:对二进制就行操作
~:按位取反操作 比如 int a = ~5
&:按位与;只要对应数位有一个数位的内容是0,则计算结果就是0 比如:3&5
3: 0000 0011
5: 0000 0101
结果: 0000 0001 == 1
|:按位或;只要对应数位有一个位数内容是1,则计算结果就是1 比如:3|5
3: 0000 0011
5: 0000 0101
结果: 0000 0111 == 7
^:按位异或;如果对应数位内容一样则计算结果是0,否则结果是1 比如:3^5
3: 0000 0011
5: 0000 0101
结果: 0000 0110 == 6
<<:左移;比如数字3左移2位 3<<2;
3: 0000 0011
左移: 0000 1100 == 12
>>:右移;比如数字5右移2位 5>>2;
有符号类型:左边空出来的位置一定填充符号位
比如:
0x80000000
转换二进制: 10000000 00000000 ......
右移: 11100000 00000000 ...... == 0xe0000000
无符号类型:左边空出来的位置一定填0
比如:
5: 0000 0101
左移: 0000 0001 == 1
所有操作符不会修改存储区内容,只会得到一个新的数字
&也可以作为单目操作符使用,用来计算一个存储区的地址;可以使用%p表示地址
如果表达式里包含的多个数字类型不同必须首先转换成统一个类型之后才能计算;
这个转换过程叫做隐式类型转换,完全由计算机控制
如果多个多个数据在内存中占地大小不同就把占地小的数据转换成占地大的类型
如果不同类型数字在内存占地大小一样就把整数类型转换成浮点类型,把有符号类型转换成无符号类型
在c语言中可以随时给一个数字指定一个新的类型,叫做强制转换;比如(char)300
强制类型转换可能导致数据的丢失
类型转换不会修改任何存储区的内容,计算机会分配一个新的存储区,把转换后的结果记录在新的存储区中;然后用这个新的存储区就行后面的计算
操作符可以分为三种:
单目操作符
双目操作符
三目操作符
自增,自减操作当 数字 使用时,前操作是修改之后的数字,后操作是修改之前的数字
不要在一条语句里对同变量多次进行自增自减计算;比如:num = num1++ + ++num1
***************************************************************
位操作符:对二进制就行操作
~:按位取反操作 比如 int a = ~5
&:按位与;只要对应数位有一个数位的内容是0,则计算结果就是0 比如:3&5
3: 0000 0011
5: 0000 0101
结果: 0000 0001 == 1
|:按位或;只要对应数位有一个位数内容是1,则计算结果就是1 比如:3|5
3: 0000 0011
5: 0000 0101
结果: 0000 0111 == 7
^:按位异或;如果对应数位内容一样则计算结果是0,否则结果是1 比如:3^5
3: 0000 0011
5: 0000 0101
结果: 0000 0110 == 6
<<:左移;比如数字3左移2位 3<<2;
3: 0000 0011
左移: 0000 1100 == 12
>>:右移;比如数字5右移2位 5>>2;
有符号类型:左边空出来的位置一定填充符号位
比如:
0x80000000
转换二进制: 10000000 00000000 ......
右移: 11100000 00000000 ...... == 0xe0000000
无符号类型:左边空出来的位置一定填0
比如:
5: 0000 0101
左移: 0000 0001 == 1
所有操作符不会修改存储区内容,只会得到一个新的数字
&也可以作为单目操作符使用,用来计算一个存储区的地址;可以使用%p表示地址
如果表达式里包含的多个数字类型不同必须首先转换成统一个类型之后才能计算;
这个转换过程叫做隐式类型转换,完全由计算机控制
如果多个多个数据在内存中占地大小不同就把占地小的数据转换成占地大的类型
如果不同类型数字在内存占地大小一样就把整数类型转换成浮点类型,把有符号类型转换成无符号类型
在c语言中可以随时给一个数字指定一个新的类型,叫做强制转换;比如(char)300
强制类型转换可能导致数据的丢失
类型转换不会修改任何存储区的内容,计算机会分配一个新的存储区,把转换后的结果记录在新的存储区中;然后用这个新的存储区就行后面的计算
相关文章推荐
- 数据类型,运算符和表达式04 - 零基础入门学习C语言05
- JavaScript基础----04Javascript语法-运算符(1)
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- swift基础学习(04)[运算符、属性、属性观察器、方法、下脚标本、继承、构造器]
- Java基础知识学习之路-04-第三章-数据类型和运算符
- Python基础04 运算符
- 数据类型,运算符和表达式04 - 零基础入门学习C语言05
- 【Python】04、python基础数据类型与运算符
- 有意思的python语言基础,变量,占位符,运算符,if语句(04)
- python3基础-04 运算符
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- 第三天04 JAVA基础语法(运算符)(学习笔记)
- java基础讲解04-----数据类型和运算符
- Java 基础 (04) 运算符
- [零基础学JAVA]Java SE面向对象部分-09.面向对象基础(04)
- 基础知识补遗-短路运算符和非短路运算符
- VB基础——还有些运算符
- [零基础学JAVA]Java SE基础部分-04. 分支、循环语句
- [零基础学JAVA]Java SE应用部分-26.多线程(04) 推荐
- Smalltalk基础知识系列04:对象和消息之组合消息