位运算与移位运算

位运算符

位运算值得是进行二进制位的运算

位运算符 说明
~ 取反
& 按位与
| 按位或
^ 按位异或
<< 左移运算符,左移一位等于乘二
>> 右移运算符,右移一位相当于除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
posted @   萧何i  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示