艾瑞 6.22 day02

本文深入探讨编程中的基本数据类型,如浮点数、整数和字符之间的转换及可能的损失。讲解了赋值、比较、逻辑、位运算符的用法和规则,并通过实例展示了运算过程。此外,还介绍了变量命名规则、运算符优先级和位运算符的差异,如按位与(&)、按位或(|)、按位异或(^)。同时,文章讨论了原码、反码、补码的概念以及移位运算符(<<、>>、>>>)的应用。
摘要由CSDN通过智能技术生成

1. float a = 3.5; int b = a; 打印b的结果是什么?

错误的,不兼容的类型,强制转换会造成损失。


2. int a = 5; float b = a; 打印b的结果是什么?

结果是5.0,float是浮点数,默认是double类型。


3. char a = 'A'; int b = a; 打印b的结果是什么?

结果是65,A的编码数值为65。


4. int a = 68; char b = a; 打印b的结果是什么?

错误的,b是char型的,给char b = a;里的a加上单引号就可以变成char型的。

5. 画出基本数据类型的兼容关系图

6. 变量的命名规则:
    驼峰命名法:
        小驼峰:变量一般用小驼峰法标识。第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母。

         大驼峰:常用于类名,函数名,属性,命名空间。相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。
        连字符命名法 :将连字符(短划线-)放在复合词的两个部分之间,或者将连字符放在后缀前面或者前缀后面。

7. 分别用表格整理算术运算符, 赋值运算符,比较运算符,逻辑运算符,位运算符,单目运算符,三目运算符

算术运算符

+ - * / %

当表达式中的数值都是整数int, 则运算结果也是整数int

当表达式中有一个数值是浮点数double, 则整个表达式所有数值全部提升为浮点数double, 运算结果为浮点数double

赋值运算符

=  +=  -=  *=  /=  %=

将一个直接量赋值给变量,也可以将一个变量赋值给另一个变量
比较运算符

>  >=  <  <=  ==  !=

所有的比较运算符, 运算结果都是boolean类型, 要么是true, 要么是false

逻辑运算符

&  &&  |  ||  !

逻辑运算符是对两个boolean条件做逻辑(与、或、非)运算, 运算结果也是boolean

位运算符

左移

<<

右移

>>

>>>

位 => 二进制比特位

什么是位运算符? 因为运算符会将数字转为二进制, 对二进制的比特位做运算

单目运算符

~5按位非
i++ 自增、i--自减
!a 逻辑取反
表达式中只有一个操作数
三目运算符?:
运算符对三个操作数进行运算

8. =和==的区别:

一个等于号  =  是赋值运算符 (可以是直接量赋给变量, 也可以是变量赋给变量)

  两个等于号  == 才是是否相等的比较运算符

9. i++和++i的区别:

如果表达式中只有++运算,则在变量前面或后面没有区别,如果表达式中除了++,还有其他运算,++i中在变量前面,先运行++,再运行其他运算;则i++中在变量后面,先运行其他运算,再运行++。

10. +运算符操作数值, 字符, 字符串的区别是什么:

+运算符操作数值,直接相加,

+运算符操作字符,把字符的编码数值加在一起,

+运算符操作字符串,进行字符串的拼接

例如:

11. &和&&的区别:

&不短路与: 左边不成立, 右边就失去了运算的意义, 但是也会运算一下

&&短路与: 左边不成立, 右边就不会运算了, 因为与要求两边都成立, 如果左边已经为不成立, 右边就没有运算的意义了, 因为无论右边是否成立, 也不会影响最终结果

12. |和||的区别:

不短路或: 左边成立, 右边就失去了运算的意义, 但是也会运算一下 

|| 短路或: 左边成立, 右边就不会运算了, 因为或要求两边都不成立, 如果左边已经成立了, 右边就失去了运算的意义了, 因为无论右边是否成立. 也不会影响最终结果

 

 

 

13. &可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么:

逻辑运算符:两个条件都成立,结果才成立,有一个条件不成立,结果就是不成立

位运算符:按位与,两个数字同一位上的数字都为1返回为1 ,其他为0。(注意要先将数字转换为二进制)

14. |可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么:

逻辑运算符:两个条件都不成立,结果才不成立,有一个条件成立,结果就是成立

位运算符:按位或,两个数字同一位上的数字只要有一位为1,结果返回就为1
 

15. 什么是原码、反码、补码:

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

反码:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

补码:正数的补码就是其本身。负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。

16. 图解3&5的运算过程和结果
17. 图解3|5的运算过程和结果
18. 图解~5的运算过程和结果
19. 图解3^5的运算过程和结果:

300000011
500000101结果
按位与000000011
按位或000001117
按位异或000001106
5取按位非10000110-6

&按位与(双目运算符),当两个数字都为1返回1,有一位不为1返回0
|按位或(双目运算符),只要有一位是1则返回1
^按位异或(双目运算符),两位数字相同时返回0,不同返回1
~按位非(单目运算符),只能操作一个数字,表示每一个比特位取反,包括符号位

20. 图解8<<2的运算过程和结果:

<----------------------

高位舍弃---低位以0填充

00001000

00100000

21. 图解8>>2的运算过程和结果:

------------------------->

高位以0填充-----低位舍弃

00001000

00000010

22. 图解~5和~-5的运算过程和结果

 

22. >>和>>>的区别是什么:
    如何最快速计算 8 * 4?
    如何最快速计算 8 / 4?

>>:有符号右移,无论正数或负数,高位都是补0
>>>:无符号右移,正数高位补0,负数高位补1

使用左移运算符可以最快速计算 8 * 4,使用右移运算符可以快速计算 8 / 4。

23. 说说运算符的优先级, 以及如何改变优先级:

使用()可以改变运算符的优先级

24. 什么是单目(一元), 双目(二元), 三目(三元)运算符:
      单目: 运算符只对一个操作数进行运算
           ~5 按位非
           i++ 自增
           !a  逻辑取反
      双目: 运算符对两个操作数进行运算
              3 + 4
              5-2
              6*7
              8/2
              10%3
              a > b...........
      三目: 运算符对三个操作数进行运算
            ?:

25. 说说第二行代码中有几个运算符和运算顺序
int a = 10
char b = a++ > 10 ? 'A': 'B'
打印a
打印b 

有4个运算符,分别是:=、>、?、:

先运算>,然后是?之后是++,最后是=

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值