多语言展示
当前在线:817今日阅读:23今日分享:31

复合赋值位运算符

复合赋值位运算符
方法/步骤
1

显示器显示的虽然是我们熟悉的十进制或字符,但在计算机存储器存储的数据都是以二进制形式存储的,程序输出时通过转换程序把二进制数据转换为十进制或字符输出到屏幕上。二进制数是用0和1两个数字来表示的数,一个byte类型的数据占一个字节,是8位二进制数,一个int类型的数据占2个字节,是16位二进制数。例如:字符A的十进制表示是65,二进制表示是。位运算符就是针对二进制位进行操作,下表列出了位运算符“<< =、>>=”的描述及例子。

2

左移赋值运算符用“<< =”表示,是将运算符左边操作数指定的变量值,向左移动运算符右边指定的位数,左侧移除的位全部丢弃,并且在低位补零后,再赋值给运算符左边操作数指定的变量。左移运算结果不能溢出,溢出后原来的数据信息会丢失。溢出示例:字符A的ASCII编码十进制数值为65,二进制编码是,左侧第二位为1,如果左移2位,其值为,其左侧的1被移除,运算结果溢出,移位后的数据无意义。因此,在左移运算过程中,只有为1的位没被移除,移位后的运算结果才有意义。未溢出示例:数字1的ASCII编码为,十进制数值为49,左移1位后,其值为,十进制数值为98,其ASCII码对应的字符为b。从上个例子可以看出,在无溢出的情况下,数值向左移n 位,就相当于乘上2 的n 次方。右移赋值运算符右移赋值运算符用“>>=”表示,是将运算符左边操作数指定的变量值,向右移动运算符右边指定的位数,右侧移除的位全部丢弃,左侧留出的空位补上符号位(正数为0,负数为1),再赋值给运算符左边操作数指定的变量。例如:字符A的ASCII编码十进制数值为65,二进制编码是,右移2位后,其值为,十进制数值为16,如果右移8或更高位数,二进制编码为,其数值为0,无实际意义。示例1:左移赋值运算符在D盘Java目录下,新建“MoveLeftSample.java”文件。用记事本打开“MoveLeftSample.java”文件,输入以下代码:

3

程序功能主要是演示复合赋值位运算符<<=的用法。程序第一个左移运算是溢出运算示例,第二个左移运算是无溢出运算示例。编译“MoveLeftSample.java”文件,在命令行窗口输入“javac  MoveLeftSample.java”并执行命令,编译通过后,在命令行窗口输入“java  MoveLeftSample”运行Java程序,命令行窗口显示如下信息:从上述结果可以看出,字符A的ASCII码值为65,左移2位,其高位1被移除,十进制数值为260,数值已超出了ASCII码值所能表示的范围,因此该左移运算无实际意义。数字1的ASCII码值为49,左移1位,其数值为98,其ASCII编码对应的字符为b,左移1位运算相当于将数字1的编码值进行了乘2操作。

4

程序功能主要是演示复合赋值位运算符>>=的用法。语句“a >>= 2”,将变量a的值右移两位后,再赋值给变量a。编译“MoveRightSample.java”文件,在命令行窗口输入“javac  MoveRightSample.java”并执行命令,编译通过后,在命令行窗口输入“java  MoveRightSample”运行Java程序,命令行窗口显示如下信息:

推荐信息