位运算符

<

先说左移运算符,它的符号表示是<<

举个例子,先定义一个int类型的数,十进制的value = 733183670,转换成二进制在计算机中的表示如下(int类型占4个字节):

value << 1,代表左移1位,运算过程如下:

那么如果往左移8位呢,value << 8

左移8位后变成了十进制的值为:-1283541504,移动8位后,由于首位变成了1,也就变成了负数,在使用左移运算符时要考虑变成负数的情况。

>>右移

再来说说右移运算符,它的符号是>>

依旧设定value = 733183670,向右移8位,运算过程如下:

和左移一样,缺失位补0,但是需要注意负数的右移

设定value = -733183670,需要注意负数在计算机中的存储形式是其同值正数的补码

先说个分支:原码、反码、补码

int类型的+1的原码是:

int类型的+1的反码是(原码各位取反)

int类型的+1的补码是(反码末位加1)

普及了补码的知识,那么接着说value = -733183670,如果它往右移8位呢?

>>>无符号右移

还有一个无符号右移运算符>>>

无符号右移运算符>>>和右移运算符>>是一样的,只不过右移时左边是补上符号位,而无符号右移运算符是补上0

&与运算

&它既是一个逻辑运算符,也是一个位运算符,那么它在位运算中如何表示呢?

以3&5运算为例,先将3和5转化为二进制数,具体计算如下:

结论:

对应位同为1时,才为1,否则全为0(对应位只要有0,全为0,否则为1)。

另外:也可以把1理解为true,把0理解为false, true和false进行与&运算时,必须同为true时结果才为true。

|或运算

和与运算逻辑相似,不同的是对应为数字的判断:

总结:

对应位只要有1时,即为1,否则全为0(对应位只有全是0时,结果才是0,否则为1)。

另外:也可以把1理解为true,把0理解为false, true和false进行或|运算时,只要有true,结果即为true。

~非运算

以~3为例:

总结:

对每位进行取反。

^异或运算

以3^5为例:

总结:

只要对应为不同即为1。

三元运算符

三元运算符有一个标准语法a?b:c

用文字解释就是a为布尔表达式,b和c为同一类型的表达式或值,当a=true时,整个表达式的值为b的值,否则为c的值。

注意事项:

  • 必须同时保证表达式b和表达式c都符合被赋值变量数据类型的要求。
  • 三元运算符的结果必须被使用。

在位运算中_Java常见的运算符(下)相关推荐

  1. 位运算符取反_Java常见的运算符——位运算

    位运算符 <<左移 先说左移运算符,它的符号表示是<< 举个例子,先定义一个int类型的数,十进制的value = 733183670,转换成二进制在计算机中的表示如下(int ...

  2. C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么?

    C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 答案: 右移,除以2   左移,乘以2 比如5,5的二进制表示是101那么右移一位之后是10就是2了,是整除 ...

  3. C#中不常见的运算符功能汇总

    介绍 C#有很多运算符,可分为以下几种:算数运算符,比较运算符,条件运算符,赋值运算符,逻辑运算符.下面对不常见的运算符进行汇总. 概念 条件运算符 ?(可空类型修饰符) 引用类型可以使用空引用表示一 ...

  4. 布尔 (boolean) 型变量只能取两个值,True 和 False。当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False。

    布尔型变量 List item 布尔 (boolean) 型变量只能取两个值,True 和 False.当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False. 除了直接给变量赋 ...

  5. python中的取余运算符是_python取余运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算 ...

  6. java取模运算_Java的四则运算符与取模运算符

    各位小伙伴们大家好,这次小编要介绍的是Java的四则运算符与取模运算符.这里,小编要提一下一些常见的运算符:算术运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符.这次就先来讲算术运算符与取模运算 ...

  7. 在python中二进制位取反运算如何进行_Python位运算符详解

    Python 位运算按照数据在内存中的二进制位(Bit)进行操作,它一般用于底层开发(算法设计.驱动.图像处理.单片机等),在应用层开发(Web 开发.Linux 运维等)中并不常见.想加快学习进度, ...

  8. php进攻教程,如何对PHP程序中的常见漏洞进行攻击(下)_php基

    如何对PHP程序中的常见漏洞进行攻击(下)_php基 发布时间:2016-06-17 来源: 点击: 次 如何对PHP程序中的常见漏洞进行攻击(下) 翻译:analysist(分析家) 来源:http ...

  9. java安装_Java开发中更多常见的危险信号

    java安装 在< Java开发中的常见危险信号>一文中,我介绍了一些不一定本身就是错误或不正确的做法,但它们可能表明存在更大的问题. 这些"红色标记"类似于" ...

最新文章

  1. [Android] ListView关于adapter多种view设置
  2. 模块的使用,包,及程序开发规范
  3. 这五种 Python 字符串连接方式,你都知道吗?
  4. java lodop打印_Java的云打印Lodop
  5. 收集的常用css页面及表单表格样式
  6. windows10下安装opencv3.2+QT Creator+MingGW
  7. 洛谷P3066 [USACO12DEC]逃跑的BarnRunning Away From…
  8. 使用 C# 和 Blazor 进行全栈开发
  9. 万圣节头像小程序源码
  10. 理解用户态切换到内核态——内核态下有一个特殊的进程
  11. 系统设置参数说明11
  12. 采购物联网卡如何选择流量套餐
  13. DolphinDB Database丨交易回测系列一:技术信号回测
  14. Android Studio+Emulator启动黑屏解决方法
  15. C++ 输入输出(cin cout)加速/效率优化
  16. 区块链安全————区块链技术安全讨论
  17. (平衡)kd树的创建与搜索
  18. ESP8266-Arduino网络编程实例-WiFi连接丢失解决方法
  19. Python进阶之Scrapy-redis分布式爬虫抓取当当图书
  20. tomcat 如何查看tomcat版本及位数——tomcat笔记

热门文章

  1. c++二分答案 之 跳石头
  2. js获取Listbox选择的值
  3. Python爬虫要违法了吗?小编告诉大家:守住规则,大胆去爬
  4. python面试题之Python 的特点和优点是什么
  5. ul li一行两个显示
  6. Pjax无刷新跳转页面实现,支持超链接与表单提交
  7. JeeSite 4.0 规划(二)
  8. (转)Spring4.2.5+Hibernate4.3.11组合开发
  9. PyTorch 1.0 中文文档:torch.hub
  10. 数据科学 IPython 笔记本 9.3 理解 Python 中的数据类型