java左移右移运算符】的更多相关文章

在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号在Java中叫移位运算符,在写代码的过程中,虽然我们基本上不会去写这些符号,但需要明白这些符号的运算原理,比如HashMap中有以下代码: static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//左移 static final int hash(Object key) { int h; return (key == null) ? 0…
http://blog.csdn.net/dandanteng/article/details/7433531 首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的. 左移位:<<,有符号的移位操作左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充 右移位:>>,有符号的移位操作右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负…
1-左移运算符m<<n,表示把m左移n位.左移n位的时候,最左边的n位数将被丢弃,同时在最右边补上n个0.例如: 00001010<<2 = 00101000 10001010<<3=01010000 2-右移运算符m>>n表示把m右移n位.右移n位的时候,最右边的n位将被丢弃.同时在最左边补上n个符号位.例如: 00001010>>2=00000010 10001010>>3=10001 3-无符号右移运算符m>>>…
吐槽先~为什么我的老师大学时候没教过我这东西  - -. 继续送栗子: 比如 “(1+2)<<3” 你们猜等于几~ Debug.Log((1+2)<<3)之后输出的是“24”. 为什么呢~ 因为呀因为呀  “ “左移/右移” 是指对应的二进制向左右移位,执行1+2=3,就变成了3<<3.即:把3对应的二进制向左移3位. 3对应的二进制:11   向左移3位变成 11000 二进制11000不就是十进制的24嘛~~~” 继续拓展一下思维 3>>1<<…
//按位与运算& System.out.println(0&0);//0 System.out.println(0&1);//0 System.out.println(1&1);//1 System.out.println("==========="); //按位或运算符| System.out.println(0|0);//0 System.out.println(0|1);//1 System.out.println(1|1);//1 System.…
public class test{ public static void main(String[] args) { int m = 9; int n = m >> 3; int p = 8; int q=p <<2; System.out.println("m>>3 = "+ n); System.out.println("p<<3 = "+ q); } } 结果 m>>3 = 1 p<<3…
移位运算符也针对二进制的“位”,它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>). 1.左移运算符左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零.其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子.public class reyo17{public static void main(String[] args){int a=2;int b=2;System…
java移位运算符:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则 按二进制形式把所…
今天搜到一个比较好用的在线编译器,希望和大家分享. 除了java还有c++....,地址是http://www.tutorialspoint.com/compile_java_online.php 另外今天再次复习了java左移和右移,这里针对负数举个例子: 正数和负数在java中是以补码的形式表示 例如-2 在计算机中表示为 11111111 11111111 11111111 11111110 1.左移 -2<<2 即-2左移2位的结果是:11111111 11111111 1111111…
C语言中的左移和右移运算符移位后的结果老是忘记,最近在刷有关位操作的题目,正好整理下:   1. 左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位. 2. 右移运算符(>>) 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0.对于有符号数,某些机器将对左边空出的部分用符号位…
32 [程序 32 左移右移] 题目:取一个整数 a 从右端开始的 4-7 位. 程序分析:可以这样考虑: (1)先使 a 右移 4 位. (2)设置一个低 4 位全为 1,其余全为 0 的数.可用~(~0<<4) (3)将上面二者进行&运算. package cskaoyan; public class cskaoyan32 { @org.junit.Test public void logicalShift() { java.util.Scanner in = new java.u…
位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面详细介绍每个位运算符. 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段.public class data13{public static void main(String[] args){int a=129;int b=128…
学习完了变量+常量,现在只能简单的声明变量+赋值+打印变量. 但是程序要做的就是去处理数据,把原本散乱的数据,处理成有意义的数据,供我们来使用,这就涉及到了运算符的应用. 算数运算符常用的种类: 加法:+ 减法:- 乘法:* 除法:/ 取余:% 自增运算符:++ 自减运算符:  -- 字符连接符:“+”(不同于数字之间的加法运算) 特别说一下除法,代码如下: class Trans{ public static void main(String[] args) { int a = 6758; a…
在程序设计中,运算符应用得十分广泛,通过运算符可以将两个变量进行任意运算.数学中的"+"."-"."*"."/"运算符同样也适用于Java语言.除了这些算术运算符外,Java中还包含有关系运算符.逻辑运算符.位运算符等,本节将向大家详细介绍这些运算符. 1.算术运算符 在数学运算中最常见的就是加减乘除,被称作四则运算.Java中的算术运算符就是用来处理四则运算的符号,,, 序号                    运算符  …
前言:Java内功心法之运算符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 算术运算符 算术运算符用在数学表达式中,它们的作用和在数学中的作用一样.下表列出了所有的算术运算符. 表格中的实例假设整数变量A的值为10,变量B的值为20…
电脑快捷键: Alt+ESC切换到上一个操作的窗口 Alt+F4关闭当前窗口 Print Screen截取当前全屏幕到剪切板 Alt+Print Screen截取当前窗口到剪切板 Alt+Shift在输入法之间切换 Alt+Tab切换当前打开的窗口 Alt+Shift+Tab反向切换当前打开的窗口 Alt+up打开当前文件夹上一层文件夹 Backspace返回上一页 Ctrl+A全选 Ctrl+Alt+Tab不关闭菜单,循环切换打开的窗口 Ctrl+BIE7 中整理收藏夹 Ctrl+C复制 Ct…
一.位移运算 java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐…
运算符 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. 赋值运算符:=.+=.-=.*=./=.%=.&=.|=.~=.^=.<<=.>>= . >>>=.++ 和 --. 关系运算符:==.!=.<.<=.> 和 >=. 逻辑运算符:&&.|| 和 !. 位运算符:&.|.~.^.<<.>> 和 >>> 算术运算符 算术运算符用在数学表达式中,它们…
Java 中的三种位移运算符 java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐 下面将使用代码进行测试:这里涉及到码的表示:原码.反码.补码.移码 原码:最高位表示符号位,剩余位表示数字,0表示正数,1表示负数 反码:正数的反码等于原码,负数符…
运算符及表达式 算数运算 加(+) 减(-) 乘(*)  除(/) 取余(%) 自增(++) 自减(- -) 注意点 1. 同种类型参与运算(可能需要自动类型转换),返回同种类型 2. 整数的除法是整数 3. 0对其他数的余数是0 4. %获取除法结果中的余数.负数取余的结果: 负数和0,工作很少使用. 正数方向,n的余数是周期函数,并且小于n.在工作中, 周期性的运算经常采用 % 实现. 5. i++ ++i i++,后++,先将i的值作为整个表达式的值,然后将i增加1 ++i前++,先将i增…
Java中有三个位移运算符,用于对int类型整数的二进制补码进行操作: 1. "<<": 左移运算符 在二进制补码末尾添加“0”,之前的其他位相当于左移了一位,可看作成“乘以二”操作. 例如,a = 10,a 的二进制表示为“0000 0000 0000 0000 0000 0000 0000 1010”,“a << 1”表示a的二进制表示左移一位,结果为“0000 0000 0000 0000 0000 0000 0001 0100”,对应十进制的“20”.…
1.运算符(operator)  Java 语言支持如下运算符: 算术运算符:  +,-,*,/,%,++ 赋值运算符 = 关系运算符:  >,<,>=,<=,==,!=  instanceof 逻辑运算符:  &&,||,! 位运算符:  &,|,^,~ , >>,<<,>>> 条件运算符 ? 扩展赋值运算符:+=,-=,*=,/= 2.一元运算符(++, --) int a = 3; int b = a++; /…
Java中的运算符大致分为:算术运算符.赋值运算符.关系运算符.逻辑运算符和位运算符五类. (1).算术运算符:+  -  *  /  %  ++  -- (2).赋值运算符:=  +=  -=  *=  /=  %= (3).关系运算符:==  !=  >  >=  <  <= (4).逻辑运算符:&  |  !  ^   &&   || (5).位运算符:&  |  ~  ^  <<  >>  >>> 一…
以下内容引用自http://wiki.jikexueyuan.com/project/java/basic-operators.html: Java针对操控变量提供了一组丰富的运算符.可以将所有的Java运算符分为如下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 一.算术运算符 算术运算符在数学表达中的使用和它们在代数中的使用是相同的.下面的表格列举了算数运算符: 假设整体变量A有10个,变量B有20个,那么: 示例: 运算符 描述 例子 + 加法–在运算符的另一…
Java编程基础——运算符和进制 摘要:本文主要介绍运算符和进制的基本知识. 说明 分类 Java语言支持如下运算符: ◆ 算术运算符:++,--,+,-,*,/,%. ◆ 赋值运算符:=,+=,-=,*=,/=,%=. ◆ 关系运算符:>,<,>=,<=,==,!=. ◆ 逻辑运算符:&,|,!,^,&&,||. ◆ 条件运算符:? :. ◆ 位运算符:&,|,~,^,>>,<<,>>>. 优先级 优先级如…
运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等.本篇博客详细介绍Java基本语法中的运算符,主要包括算术运算符.赋值运算符.比较运算符(关系运算符).逻辑运算符.位运算符.三元运算符. Java基本语法--运算符 算术运算符 ♫♬♭♩♪: ♫ 如果对负数取模,可以把模数负号忽略不记,如:5 % (-2) = 1. 但被模数是 负数则不可忽略.取余的结果符号与被模数的符号相同.此外,取模运算的结果不一定总是整数. ♪ 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法…
一.算数运算符 特别说明: 加 ,减 ,乘 ,除 与数学运算一致 取余符号看被除数 自加(减)运算:++a,--a;先做自加(自减)运算在做其他运算 a++,a--;先做其他运算在做自加(自减)运算 当运算符两侧数据类型不同时,结果与较大数据类型保持一致 二.关系运算符 == 检查如果两个操作数的值是否相等,如果相等则条件为真. != 检查如果两个操作数的值是否相等,如果值不相等则条件为真. >  检查左操作数的值是否大于右操作数的值,如果是那么条件为真. <  检查左操作数的值是否小于右操作…
原文地址:http://www.cnblogs.com/myblesh/articles/2431806.html 由于在飞控程序中执行效率对程序的影响相当大,所以一个好的运算效率很重要.左移右移比单纯的吃乘除更快. 先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:int i = 1;i = i << 2;  //把i里的值左移2位也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2…
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == 5; - 用于判断变量ia的数值是否等于5 5 == ia; - 用于判断5是否等于ia的数值,推荐使用该方式 ia = 5; - 用于使用数据5给变量ia赋值,覆盖ia原来的数值 5 = ia; - 编译报错 (2)复合赋值 +=   -=   *=   /=   ... 笔试题: byte b1…
1.左移运算符:<< 丢弃左边指定位数,右边补0. 注意: 当int类型进行左移操作时,左移位数大于等于32位操作时,会先求余(%)后再进行左移操作.也就是说左移32位相当于不进行移位操作,左移40位相当于左移8位(40%32=8).当long类型进行左移操作时,long类型在二进制中的体现是64位的,因此求余操作的基数也变成了64,也就是说左移64位相当于没有移位,左移72位相当于左移8位(72%64=8). 其它几种整形byte,short移位前会先转换为int类型(32位)再进行移位.…