java位运算符代码 java位运算实现加法

java位移运算符

 学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,通过Java学习机构学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累。

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。成都创新互联公司提供从前期的网站品牌分析策划、网站设计、成都网站建设、网站制作、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

今天给大家分享的技术知识是:Java中的位移运算符!

1) “有符号”左移位运算符()能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。

左移移位相当于乘以2,例如

3 2 //12 则是将数字3左移2位 3*2*2 = 3*(2的2次方)

分析:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

2) “有符号”右移位运算符()则将运算符左边的运算对象向右移动运算符右侧指定的位数。 “有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。

运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,移位后得到的数字为正数则补0,负数补1。

例如11 2,则是将数字11右移2位

分析:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。

3) Java也添加了一种“无符号”右移位运算符(),它使用了“零扩展”:无论正负,都在高位插入0

4)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。

5)位运算符的优先级

~的优先级最高,其次是、和,再次是,然后是^,优先级最低的是|。

JAVA位运算符

然后呢?位运算怎么了?

说说位运算常用的几种吧。

首先基本概念:

你要明白 "与" 和 "或" 都代表什么意思,“与”表示同时满足,也称同时为真,然后其结果才能为满足或真,否者一概为不满足或假;"或"表示只需要满足一个,也可以说只要一个为真,然后其结果就为满足或者,除非两个都不满足,其结果才表示不满足。

接下来说常用的4种位运算符:按位与()、按位或(|)、带符号左移()、带符号右移()

表示按位与,需要按位的意思是,首先将符号两边均换算成二进制,然后按位做 与 操作,没有内容的以0计算。比如,17 相当于 001 111 相当于 01 01 11 最后得到结果 001 也就是1 ;

| 表示按位或,其他内容与一致,只有换成二进制后做的操作时 按位或,同上例:1|7 相当于 001|111 相当于 0|1 0|1 1|1 最后得到结果 111 也就是 7;

表示左移,举例说明: 7 1 首先只将符号左侧内容换算成二进制 111 然后,向左移位,需要移多少位?这时候就用到符号右侧的数字1,即表示移1位,缺失的依旧补0,所以就变成了1110,也就是14

表示右移,和左移一样,比如 71 就表示 111向右移动一位,就变成了11,多余的位会被舍弃.

还有其他的不太常用的 比如 按位 异或 , 无符号移位运算,如果感兴趣,也可以去了解

在JAVA中,"~"是什么意思?

~是位运算符,意义是\x0d\x0a按位非(NOT)\x0d\x0a\x0d\x0a按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为:\x0d\x0a00101010\x0d\x0a经过按位非运算成为\x0d\x0a11010101 \x0d\x0a\x0d\x0a优先级按位运算符的优先级,在运算符中优先级最低。

Java运算符?

1.运算符

1)算术运算符

+-*/%++--

+:如果有加数为“”(字符串),表示连接

%:2%1 0

++:自增1 num++:先参与运算,然后在自增 ++num:先自增,再参与运算

--:自减1  num-- --num

2)赋值运算符

=   += -= *= /= %=......

num=3;

+=  num+=3=num=num+3

左边?=右边=左边=左边?右边

3)关系运算符

==!===

表达式的结果为:boolean类型

==:用来判断两个数是否相等

4)逻辑运算符

||!^|

结果类型:boolean类型

与:串联,并且

或:并联,或者

非:取反

异或:不同为真,相同为假

与: 区别:

:短路与,如果第一个能判断出结果,则云南电脑培训认为后面的不再判断

:所有的都会判断

|| |区别:同上面

5)位运算符:

|~^  

对数值按位操作:

63

00000110

00000011

00000010

:23=16补0

:162=4:正数补0,负数补1

:补0

三目运算符:

?:

条件表达式?结果1:结果2;

如果表达式结果为true:结果为结果1

否则为结果2

12?1:0;结果为0


文章标题:java位运算符代码 java位运算实现加法
转载源于:http://cdiso.cn/article/dosjjic.html

其他资讯