移位运算符就是在二进制的基础上对数字进行平移。(只是二进制)
按照平移的方向和填充数字的规则分为三种:
<<(左移)、>>(带符号右移)和>>>(无符号右移)。
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。
三种移位运算符的移动规则和使用如下所示:
“<<”运算规则:
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
计算过程:
3 << 2
首先把3转换为二进制数字
0000 0000 0000 0000 0000 0000 0000 0011,
然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是
0000 0000 0000 0000 0000 0000 0000 1100,
则转换为十进制是12.
“>>”运算规则:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),
高位的空位补符号位,即正数补零,负数补1.
语法格式:
需要移位的数字 >> 移位的次数
例如11 >> 2,则是将数字11右移2位
计算过程:
11的二进制形式为:
0000 0000 0000 0000 0000 0000 0000 1011,
然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终
结果是:
0000 0000 0000 0000 0000 0000 0000 0010.
转换为十进制是2.
“>>>”运算规则:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。
无论正数还是负数都在高位插入0;
分享到:
相关推荐
控制程序流程<br>3.1 使用Java运算符<br>3.1.1 优先级<br>3.1.2 赋值<br>3.1.3 算术运算符<br>3.1.4 自动递增和递减<br>3.1.5 关系运算符<br>3.1.6 逻辑运算符<br>3.1.7 按位运算符<br>3.1.8 移位运算符<br>3.1.9 ...
java 移位运算符 java 移位运算符 java 移位运算符
27<br><br>0056 强行改变运算符的运算顺序 27<br><br>第3章 程序算法 29<br><br>3.1 数据结构 30<br><br>0057 如何实现单向链表 30<br><br>0058 如何实现双向链表 35<br><br>0059 如何实现堆栈 41<br>...
java中有三种移位运算符<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,
<br> 8.4 习题 <br>第9章 宏<br> 9.1 宏的定义和引用 <br> 1 宏的定义<br> 2 宏的引用<br> 3 宏的参数传递方式<br> 4 宏的嵌套定义<br> 5 宏与子程序的区别 <br> 9.2 宏参数的特殊运算符 <br> 1 连接运算符...
<br> 8.4 习题 <br>第9章 宏<br> 9.1 宏的定义和引用 <br> 1 宏的定义<br> 2 宏的引用<br> 3 宏的参数传递方式<br> 4 宏的嵌套定义<br> 5 宏与子程序的区别 <br> 9.2 宏参数的特殊运算符 <br> 1 连接运算符...
宏<br> 9.1 宏的定义和引用 <br> 1 宏的定义<br> 2 宏的引用<br> 3 宏的参数传递方式<br> 4 宏的嵌套定义<br> 5 宏与子程序的区别 <br> 9.2 宏参数的特殊运算符 <br> 1 连接运算符<br> 2 字符串整体传递...
<br> 8.4 习题 <br>第9章 宏<br> 9.1 宏的定义和引用 <br> 1 宏的定义<br> 2 宏的引用<br> 3 宏的参数传递方式<br> 4 宏的嵌套定义<br> 5 宏与子程序的区别 <br> 9.2 宏参数的特殊运算符 <br> 1 连接运算符...
一个使用C#实现的小案例,通过使用移位运算符来获取汉字的GB2312编码值(附blog原文:https://blog.csdn.net/qq_38768365/article/details/99410757)
//移位运算符:<< >> ,关系:> < >= <= 等 等于(与)不等排第七; //即== != 位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十; 逻辑或跟与; //逻辑运算符:|| 和 && 十二和十一; //注意...
<br>199 方差运算 <br>200 级数运算 <br>201 输出素数 <br>202 素数题 <br>203 序列排序 <br>204 整数各位数字排序 <br>205 字符串字母移位 <br>206 Fibonacc数列 <br> <br>第七部分 游戏篇<br> <br>207 商人过河...
<br>170 水果拼盘 <br>171 小孩吃梨 <br>172 删除字符串中的特定字符 <br>...移位 <br>190 统计最高成绩 <br>191 比较字符串长度 <br>192 合并整数 <br>193 矩阵逆置<br>194 删除指定的字符<br>195 括号匹配 <br>196 ...
<br>算术和逻辑指令 <br>移位操作 <br>乘法指令 <br>比较指令 <br>分支指令 <br>条件执行 <br>软件中断指令 <br>APCS (ARM 过程调用标准) <br>编写安全的 32-bit 代码的基本规则 <br>IEEE 浮点指令 <br>汇编器伪指令...
Java中的进制与移位运算符 Java中的进制与移位运算符
Master)总线结构和DMA<br>4.5.5 数据和指令高速缓冲器<br>4.5.6 外设和存储器接口<br>4.6 Nios SDK<br>4.6.1 inc目录<br>4.6.2 lib目录<br>4.6.3 src目录<br>4.7 软件开发应用<br>4.7.1 开始前的准备...
//移位<br> val &= 0x01; //与1相与<br> if(val) <br> num++; <br> } <br> return num; <br> } <br>第二种unsigned int TestAsOne1(char log) <br> { <br> int i; <br> unsigned int num=0, val; <br> for(i=0; i<8...
移位运算符
下面小编就为大家带来一篇深入理解C++移位运算符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Erlang的比较运算符 opDescription==等于/=不等于=<小于等于<小于>=大于等于>大于=:=精确的等于=/=精确的不... false 所以一般推荐用精确等于去比较 比较运算符的大小级别: number < atom> 1 > a. false opDe
移位:移位运算符有双目移位运算符:<<(左移)和 >>(右移)。 左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数...