java 左移 右移

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 = 32

左移n位,原来的数乘以2^n;右移n位,原来的数除以2^n,取整数部分

原文地址:https://www.cnblogs.com/thiaoqueen/p/8351105.html

时间: 2024-10-04 02:34:39

java 左移 右移的相关文章

java 左移&lt;&lt;&amp;&gt;&gt;右移&amp;&gt;&gt;无符号右移

java中右移运算符>>和无符号右移运算符>>>的区别 在做一个pcm音频时遇到了这个符,但是我看有些百度的地方的解释都不能令我很懂,所以就整理下. 首先左移和右移的区别是很好区分的 左移<< :就是该数对应二进制码整体左移,左边超出的部分舍弃,右边补零.举个例子:253的二进制码1111 1101,在经过运算253<<2后得到1111 0100.很简单 右移>> :该数对应的二进制码整体右移,左边的用原有标志位补充,右边超出的部分舍弃.

java 左移和右移

今天搜到一个比较好用的在线编译器,希望和大家分享. 除了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/C++左移右移运算符 的总结

一.概述 本文是根据整合网上资料与相关博文总结出来的关于[ C/C++左移右移运算符 ]的知识. 二.正文 (1)结合图示篇,更加简单明了. 移位运算包含“逻辑移位”(logical shift)和“算术移位”(arithmetic shift). 逻辑移位:移出去的位丢弃,空缺位(vacant bit)用 0 填充. 算术移位:移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充,所以一般用在右移运算中. c++中,整数分有符号数和无符号数两种,对于这两种数做左移.右移运算,稍有区

jQuery实现左移右移

1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <title>完成左移右移</title> 5 <script src="jquery.js"></script> 6 <style type="text/css"> 7 table{background-color:purple;} 8 input{backgr

EASYUI- EASYUI左移右移 GRID中值

EASYUI左移右移 GRID中值 $("#addAll").click(function(){ var ids = []; var names = []; var srcrows = $('#sourceTable').datagrid('getSelections'); if(srcrows.length == 0 ){ Sys.InfoShow("请选择要移动的记录!"); return; } var id;var name; for(var srci=src

嵌入式C开发---用循环实现左移右移

//将n左移m位 int byte_to_left_move(int n , int m) { int i , ret = 1 ; if(n == 0 || n < 0) { return ; } if(n == 1) { for(i = 0 ; i < m ; i++) ret *= n * 2 ; } if(n > 1) { for(i = 0 ; i < m ; i++) ret *= n ; } return ret ; } //将n右移m位 int byte_to_rig

【C#】关于左移/右移运算符的使用

吐槽先~为什么我的老师大学时候没教过我这东西  - -. 继续送栗子: 比如 “(1+2)<<3” 你们猜等于几~ Debug.Log((1+2)<<3)之后输出的是“24”. 为什么呢~ 因为呀因为呀  “ “左移/右移” 是指对应的二进制向左右移位,执行1+2=3,就变成了3<<3.即:把3对应的二进制向左移3位. 3对应的二进制:11   向左移3位变成 11000 二进制11000不就是十进制的24嘛~~~” 继续拓展一下思维 3>>1<<

原码,反码,补码 与(&amp;) 或(|) 非(~) 异或(^) 左移 &lt;&lt; 右移 &gt;&gt; 无符号右移 &gt;&gt;&gt;

原码 数字在计算机中以二进制表示,8位的字长,最高位是符号位, 正数为0,负数为1.比如,3为0000 0011: -3为1000 0011. 注意,Java中int为32位.3的16进制表示为3,-3的16进制为fffffffd. 反码 正数的反码和原码相同. 负数的反码为符合位不变,其余按位取反. 3 为0000 0011: -3为1111 1100. 补码 正数的补码和原码相同. 负数的补码为反码+1. 3 为0000 0011: -3为1111 1101 与(&) 按位与,位数对齐,全部

左移右移(转)

先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1;i = i << 2;  //把i里的值左移2位需要注意的一个问题是int类型最左端的符号位和移位移出去的情况.我们知道,int是有符号的整形数,最左端的1位是符号位,即0正1负,那么移位的时候就会出现溢出,例如: int i = 0x40000000; //16进制的40000000,为2进制的01000000...0000i = i << 1; 那么,i在左移1位之后