day03二进制与运算符

1.计算机数据的存储使用二进制补码形式存储,并且最高位是符号位

正数的补码与反码、原码一样,称为三码合一

负数的原码:把十进制转为二进制,然后最高位设置为 1

负数的反码:在原码的基础上,最高位不变,其余位取反(0变 1,1变0)

负数的补码:反码+1

各进制间的转换

 十进制转成二进制:除2取余

二进制转8进制,三位三位的看

二进制转16进制,四位四位的看

2.运算符自增自减

  • 变量在单独运算的时候,变量前++和变量后++,a的值是没有区别的。 • 变量前++ :例如 ++a 。 变量后++ :例如 a++ 。
  • 和其他变量放在一起使用或者和输出语句放在一起使用,前++和后++就产生了不同。变量前++ :变量先自增 1,然后再运算。 • 变量后++ :变量先运算,然后再自增 1。

3. 逻辑运算符

  • & 和 &&:表示"且"关系,当符号左右两边布尔值都是 true时,结果才能为 true。否则,为 false。
  • | 和 || :表示"或"关系,当符号两边布尔值有一边为 true时,结果为true。当两边都为 false时,结果为 false
  • ! :表示"非"关系,当变量布尔值为 true时,结果为 false。当变量布尔值为 false时,结果为 true。
  • ^ :当符号左右两边布尔值不同时,结果为 true。当两边布尔值相同时,结果为 false。

区分 & 和 &&

– 相同点:如果符号左边是 true,则二者都执行符号右边的操作

– 不同点:& : 如果符号左边是 false,则继续执行符号右边的操作 && :如果符号左边是 false,则不再继续执行符号右边的操作

– 建议:开发中,推荐使用 &&

区分 | 和 ||

— 相同点:如果符号左边是 false,则二者都执行符号右边的操作

— 不同点:| : 如果符号左边是 true,则继续执行符号右边的操作 || :如果符号左边是 true,则不再继续执行符号右边的操作

建议:开发中,推荐使用 ||

企业真题:

1.高效计算2*8的值?

答:使用<<

2.&和&&的区别?

答:相同点:当符号左边都是false时,&和&&都会计算右边

        不同点:当左边是false时,&会计算右边,&&不会计算右边

3.Java的基本数据类型有哪些?String是最基本的数据类型吗?

答:byte, short,  char, int, long, float, double. boolean.八种数据类型。String不是最基本的数据类型,是引用类型。

4.Java开发中计算金额时使用什么数据类型?

答:不能使用float和double,因为精度不高。

使用BigDecimal类替换,可以实现任意精度的数据的运算。

5.char型变量中能不能存储一个中文汉字,为什么?

答:可以,因为char使用的是unicode字符集,包含了世界范围内的文字。

6.分析代码

 答:因为编译器自动将+=运算符后面的操作数强制转换为前面变量的类型,所以s+=2不会报错.

7. int i=0; i=i++ 执行后i 等于0

8. 如何将两个变量的值互换。

String s1="abc";

String s2="123";

String temp=s1;

s1=s2;

s2=temp;

9. boolean占几个字节?

 10. 为什么Java中0.1+0.2结果不是0.3?

答:整数变为二进制,能够做到“每个十进制都有对应的二进制数”,对于小数, 并不能做到“每个小数都有对应的二进制数”。所以在编程中,遇见小数判断相等情况,可以采用“四舍五入”或者“同乘同除”等方式,或者采用BigDecimal类,它底层逻辑是转换成字符串类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值