位运算与移位运算
位运算符
位运算值得是进行二进制位的运算
位运算符 | 说明 |
---|---|
~ | 取反 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 左移运算符,左移一位等于乘二 |
>> | 右移运算符,右移一位相当于除2取商 |
按位取反、按位与、按位或、按位异或的代码执行操作
int a = 7;//0111
int b = 8;//1000
System.out.println(a&b);//按位与结果0000转为10进制结果是0
System.out.println(a|b);//按位或结果1111转为10进制
System.out.println(a^b);//按位异或结果1111转为10进制
System.out.println(~b);//取反结果是-9(涉及补码问题,暂不深究)
移位运算
System.out.println(30<<4);//代码含义为左移四位也就是30*2*2*2*2,相当于30*2的四次方结果是480
System.out.println(30>>4);//代码含义为右移四位也就是30/2/2/2/2,相当于30除以2的四次方,30/16,舍弃余数取商,结果是1
字符串连接符
+,它既是运算符也是字符串连接符,取决于用的时机,如:
int a = 3;
int b = 4;
System.out.println(a+b);//这里的结果因为两个值都是数值类型,所以是加法操作
String c = "t";
System.out.println(a+c);//这里因为变量C是字符串类型,系统自动将变量A也转换为字符串类型进行连接,所以这里输出的值是3t。
注:使用char类型定义的变量通过+进行连接,返回的结果是数字,系统会自动在unicode字符表里字符查找对应的数进行相加。如:
char a = 'q';
char b = 'e';
System.out.println(a+b);//返回的结果是系统查找unicode字符表对应的数字后进行相加的结果,返回的值是数字,如果想输出字符串可以用"",如:
System.out.println(""+a+b)//定义一个空的字符串,根据Java操作原理,两个操作数有一个是字符串类型,则+号是字符串连接符,运算顺序是从左到右运算,空字符""+a,结果是字符串a的值q,然后加上变量b,输出的结果就是qe
如果两个操作数中有一个是字符串类型,那这个时候的+号代表的含义就是连接,如:
String a = "3";
int b = 4;
System.out.println(a+b);//返回的结果把变量a和变量b连接起来,是34
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!