每日总结:运算符(2021.9.30)

算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符(三元运算符)不做分析

位运算:

&:如果相对应位都是1,则结果为1,否则为0

丨:如果相对应位都是 0,则结果为 0,否则为 1

^:如果相对应位值相同,则结果为0,否则为1

〜:按位取反运算符翻转操作数的每一位,即0变成1,1变成0;

<< :按位左移运算符。左操作数按位左移右操作数指定的位数。

>> :按位右移运算符。左操作数按位右移右操作数指定的位数。

>>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

对于负数的左移或右移

为什么会-10的二进制会出现这么多的1呢?仔细数一下刚好有32位。首先需要了解的是Java负数存储是以补码形式存储的(补码=反码+1),10的二进制是1010,它的反码就是0101,再加1就是补码0110。那为什么会多出来那么多1呢?这是因为int型在Java中占8个字节,刚好32位,10原码的高位全是0,它的反码自然高位就变成了1。所以整体左移2位,低位以0补齐,最后的运算结果就是x = (|x| + 2^n)。

 

instanceof运算符:

例子:

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
posted @   stdrush  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示