您的位置:首页 > 编程语言 > Java开发

Java基础03——位运算符

2016-06-14 09:00 351 查看
昨晚一罪恶,鸽了,今天一大早就补上,我可能又要长篇大论讲来龙去脉

了(有人说电影里讲过来龙去脉的大魔王都不会有好下场。。捂脸)

======================割割===================

- 1.位运算符

【问】位运算是啥?

【答】(完了完了,这一说开又要连比带画讲故事了。)说到位这个概念,就要说说我前面没有说开的变量概念,java基础02,我写的是够应付的,也就我自己看的懂了吧……(自己挖坑要自己埋。。)开始说说,其中的一个概念,变量。

1.1 变量

变量是计算机程序语言中都会有的一个内容,主要就是用来保存一个量的,比如说,今天小明(又是小明。。。)要算一百次的加法运算,他就让计算机去做,定义出了一个变量

int a;
//int 是一种数据类型
//a就是一个名称,我叫它b或者c都可以


这个变量的概念,可以和上课学过的未知数x类比,不过不一样的是,x可以代表所有的数,a却不行。因为我们看到了,a前面有一个数据类型。这个数据类型规定了两个东西,a的类型和a的大小。int类型的意思是a是一个数字,而且是整数。但是a的大小是有限制的,具体多大我忘记了,反正你如果让

a=6666666666666666666666;


多半是要出问题的,因为,计算机开辟给a的空间没有那么大。int类型的空间大小是4*8=32位。

【问】位是啥?

【答】又绕回这个问题了,电脑的底层就只有0,1两个数字,所以,每一位就是可能填0或1的位置。所以每位有2种可能性,总共就有2^32的可能性,又因为计算机规定了,32位里面,第一位是符号位,所以,负数有2^31种可能,整数有2^31种可能。这就是int类型变量能取值的范围。

当然,变量不仅仅可以放数字,也可以放字符等,具体的我就先解释到这里,以后用到了再说。

明白位是什么了吧?

算了,我觉得这很难明白,要明白具体的,还是看专业的书吧……

回来位运算,又有一堆运算符

>>,<<,>>>,&,|,^,~


这次直接来一个程序搞定这么多个问题

public class Test
/*
位运算相关>>,<<,>>>,&,|,^,~
*/
{
public static void main(String [] args){
int b=-8;
//右移2位,答案为-2
System.out.println(b>>2);
//左移2位,答案为-32
System.out.println(b<<2);
//无符号右移2位,答案为1073741822
System.out.println(b>>>2);
//位与,答案 0
System.out.println(b&2);
//位或,答案 -6
System.out.println(b|2);
//位异或,答案 -6
System.out.println(b^2);
//位非,答案 7
System.out.println(~b);
}
}




人懒,其他我就不画了。。。其实都差不多,原理就是这个。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: