• java中的位运算符


    Java中常用的位运算符

    1.按位与 &
    2.按位或 |
    3.按位异或 ^
    4.按位取反 ~
    5.左移 <<
    6.带符号右移 >>
    7.无符号右移 >>>

    位运算符的含义

    位运算符都是基于二进制进行计算的,且位运算符都是针对与int类型进行操作
    1.按位与 int a=1&1=1; int b=1&2=0;
    2.按位或 int a=1|1=1; int b=1|2=3;
    3.按位异或 异或的概念为若两个相同则返回false,两个不同则返回true,在位运算符中相同返回0,不同返回1
    int a=1^1=0; int b=1^2=3;
    4.按位取反 int a=~1=-2 int b=~2=-3
    应为在计算机中是用补码表示数字的,所以按位取反后的数字是一个补码,因此需将补码换为原码才是这个数的值
    例:1=(00000001)(按位取反)=11111110(补码)=(反码)10000001=(反码+1)=10000010(原码)=-2
    补码的补码是补码的原码
    5.左移 int a=1<<2=4 int b=2<<2=8
    6.带符号右移 >> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1。
    例如:int a=8>>2=00001000>>2=00000010=2
    int -8>>2=1111_1111 1111_1111 1111_1111 1111_1000(补码)>>2
    =1111_1111 1111_1111 1111_1111 1111_1110(补码)
    =1000_0000 0000_0000 0000_0000 0000_0010(原码)=-2
    7.无符号右移 >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
    例如:int a=8>>>2=2
    int -8>>>2=1111_1111 1111_1111 1111_1111 1111_1000(补码)>>>2
    =0011_1111 1111_1111 1111_1111 1111_1110(补码)
    =0011_1111 1111_1111 1111_1111 1111_1110(原码)
    =1073741822

  • 相关阅读:
    第6个作业
    团队-团队编程项目作业名称-团队一阶段互评
    课后作业-阅读任务-阅读提问-3
    20171106-构建之法:现代软件工程-阅读笔记》
    团队-团队编程项目作业名称-开发文档
    结对-结对编程项目作业名称-结对项目总结
    需求分析
    团队成员简介及分工
    课后作业-阅读任务-阅读提问-3
    结对编程项目作业5
  • 原文地址:https://www.cnblogs.com/planted/p/15175592.html
Copyright © 2020-2023  润新知