前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 基础-运算符

Java 基础-运算符

作者头像
yuanyuan
发布2019-09-10 18:08:36
7470
发布2019-09-10 18:08:36
举报
文章被收录于专栏:小满

1. char ch = '您'

char类型的数据是两个字节

一个汉字是两个字节,由16个二进制组成的. 所以char类型的数据可以装中文

2.

short s = 3;

s= s+2; 和 s += 2; 有什么区别?

答:s= s+2; 编译失败因为s+ 2 时s会被提升为int类型,运算后的结果还是int类型,无法赋值给shot类型。 int类型是32个二进制位,四个字节, shot是16个二进制位2个字节,所以编译时会精度丢失的异常

而 s += 2 编译通过,+=运算符在给s赋值时自动完成了强转操作。

在JAVA中一共有八种基本数据类型,他们分别是 byte、short、int、long、float、double、char、boolean 其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

3.逻辑运算符 -- 用于连接Boolean类型的表达式

& 与 : true & true = true; true & false = false; false & false = false; 特点: 都为真才是真

| 或: true | true = true; true | false = true; false | false = false; 特点: 只要有一个为真就是真

^ 异或 : true ^ true = false; true ^ false = true; false ^ false = false; 特点:两边相等结果是假,两边不同才是真; 可以参与位运算

! 非: !true = false;

&& 与 (短路功能)

& 和 && : 1. &无论左边是真是假,右边都运算; && 当左边为假时,右边不再运算,结果就是假 2. &可以参与位运算,

| 和 || :1 . | 两边都参与运算; || 当左边为真,右边不运算; 2. | 可以参与位运算

4. 位运算符:左移,右移,无符号右移

<< 左移 : 其实是乘以2的n次幂

>> 右移: 其实除以2n次幂,最高位补什么由原有数据的最高位值定: 如果最高位是0,右移后,用0补空位;如果最高位为1,右移后用1补空位

>>> 无符号右移:无论最高位是什么,右移后,都用0补

例如:

3<<2 的运算过程:

3的二进制: 0000-0000 0000-0000 0000-0000 0000-0011

左移两位: 0000-0000 0000-0000 0000-0000 0000-0011 两个高位00舍弃

空位补0: 0000-0000 0000-0000 0000-0000 0000-1100 =12

6>>2 的运算过程:

6的二进制: 0000-0000 0000-0000 0000-0000 0000-0110

右移两位: 0000-0000 0000-0000 0000-0000 0000-0110 两个低位10舍弃

空位补0: 0000-0000 0000-0000 0000-0000 0000-0001 = 1

6 & 3 = 2的运算过程:110 & 011 = 010

6 | 5 = 7 的运算过程: 110 | 101 = 111

6 ^ 5 = 3 的运算过程: 110 | 101 = 011

~ 反码:

~6的运算过程:

6的二进制: 0000-0000 0000-0000 0000-0000 0000-0110

取反 1111-1111 1111-1111 1111-1111 1111-1001 = -7

求取反后的十进制结果:(减一再取反)

减一 0000-0000 0000-0000 0000-0000 0000-0001

减一的结果 1111-1111 1111-1111 1111-1111 1111-1000

取反 0000-0000 0000-0000 0000-0000 0000-0111 = 7

因为1111-1111 1111-1111 1111-1111 1111-1001 减一再取反后结果是7 ,所以1111-1111 1111-1111 1111-1111 1111-1001就是-7 也就是 ~6 = -7

负数的表现形式: 例如:-6的表现形式是 6取反加1 也就是 -6 = ~6+1 = -7 + 1

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档