位运算符
1个回答
展开全部
位运算符有哪些?
位运算符都是操作的二进制
用法
&,|,^,~ 的用法
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反
例:
分析:
上面这些运算符会将数字转换成2进制再进行运算。6的二进制是110,3的二进制是011。根据上面的用法规则里面,列几个竖式:
00000000 00000000 00000000 00000110 6的原码反码补码都是本身
11111111 11111111 11111111 11111001 对6取反,得到-7的补码
00000000 00000000 00000000 00000001 补码减1
——————————————————————————
11111111 11111111 11111111 11111000 反码
10000000 00000000 00000000 00000111 原码(-7)
小练习
1、请实现两个整数变量的交换(不能使用第三方变量)
2、最有效率的算出2 * 8的结果
答案分析
1、实现两个整数变量的交换很简单,但是这道题目却明确指出不能使用第三方变量。有两种方法。
方法一:
方法一有个缺点,如果数值超出了int类型的取值范围,将会损失精度
方法二:
2、直接操作二进制是比较快的,所以使用左移符号
System.out.println(2 << 3);
位运算符都是操作的二进制
用法
&,|,^,~ 的用法
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反
例:
分析:
上面这些运算符会将数字转换成2进制再进行运算。6的二进制是110,3的二进制是011。根据上面的用法规则里面,列几个竖式:
00000000 00000000 00000000 00000110 6的原码反码补码都是本身
11111111 11111111 11111111 11111001 对6取反,得到-7的补码
00000000 00000000 00000000 00000001 补码减1
——————————————————————————
11111111 11111111 11111111 11111000 反码
10000000 00000000 00000000 00000111 原码(-7)
小练习
1、请实现两个整数变量的交换(不能使用第三方变量)
2、最有效率的算出2 * 8的结果
答案分析
1、实现两个整数变量的交换很简单,但是这道题目却明确指出不能使用第三方变量。有两种方法。
方法一:
方法一有个缺点,如果数值超出了int类型的取值范围,将会损失精度
方法二:
2、直接操作二进制是比较快的,所以使用左移符号
System.out.println(2 << 3);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |