位运算中 >> 和 <<?

 1         System.out.println("-----偶数-----");
 2         System.out.println(2<<1);
 3         System.out.println(2<<2);
 4         System.out.println(4>>2);
 5         System.out.println(8>>2);
 6         System.out.println("-----奇数-----");
 7         System.out.println(3<<1);
 8         System.out.println(3<<2);
 9         System.out.println(6>>3);
10         System.out.println(9>>3);
11         System.out.println(12>>3);

为什么  9>>3和12>>3是相同的呢?   求解!

时间: 2025-01-07 16:16:19

位运算中 >> 和 <<?的相关文章

关于位运算中左移和右移运算的问题

根据我之前的学习知识, <<   和   >>  运算的规则如下: <<:左移运算:就是把当前这个二进制数向左移动多少位,低位空出的补零.高位移出的舍弃 >>:右移运算:就是把当前这个二进制数向右移动多少位,高位空出的来,原来最高位是什么,就补什么,低位移除的舍弃. 看下面的问题: public class Demo { public static void main(String[] args) { int a = 123; int b = a >&

二进制和位运算中的异或

1.给出一个问题:给你一个整形数组,这个数组中除了一个数字仅仅出现一次外,其它数字都仅仅出现两次,求出那个仅仅出现一次的数字? 要求:时间复杂度为O(n) , 空间复杂度为O(1). 这个题目的难点在于空间复杂度的限制. 解法:一个数出现两个,两个数同样.而相等两个数异或的值为0 . 所以.我们仅仅须要把整个数组的数都异或一遍,我们就能得到仅仅出现了一次的那个数字 <span style="font-size:18px;">int get_one_num(int num[]

位运算中的异或运算

参与运算的两个值,如果两个相应的bit位相同,则结果为0,否则为1 char a1 = '十', a2 = '点', a3 = '进', a4 = '攻';            char secret = '8';            a1 = (char)(a1 ^ secret);            a2 = (char)(a2 ^ secret);            a3 = (char)(a3 ^ secret);            a4 = (char)(a4 ^ se

5/30 c语言中的位运算

1.什么是位运算? 位运算是指按二进制位进行的运算.因为在系统软件中,常要处理二进制的问题.储存单元中的各二进制位左移或者右移一位,两个数按位相加等.c语言灵活,接近底层,对程序员的要求高,不像其他语言对c语言进行了封装,出错性会高很多. 2.位运算符和位运算. 运算符&按位与  ~取反 |按位或    <<左移  ^按位或   >>右移.位运算中除了~以外,均为二元元运算符,即要求两侧各有一个运算量. 3.与&的应用. 清零,无论任何一个二进制的书与上一个0000

用位运算实现十进制转换为二进制

代码如下: 1 #include <iostream> //将十进制数转化为二进制数,位运算的取位操作 2 using namespace std; 3 int main() 4 { 5 unsigned short i; 6 cout << "请输入一个小于65536的正整数" << endl; 7 cin >> i; 8 for(int j=15;j>=0;j--) 9 { 10 if ( i & ( 1 <<

java位运算

Java的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long.int.short.char和 byte,位运算符具体如下表: 运算符 说明 << 左移位,在低位处补0 >> 右移位,若为正数则高位补0,若为负数则高位补1 >>> 无符号右移位,无论正负都在高位补0 & 与(AND),对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0. | 或(OR),对两个整型操作数中对应位执行布尔代数,两个位

JavaScript 位运算笔记

之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低.今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距). 以下结果在 IE 7 ~ IE 10 上测试得出 技巧1:移位运算比乘除法快(当因数是2的幂数) b = a << 1; //大概快 6.8% 技巧2:奇偶判断 b = a & 1; //0位与1相与,相比于 x % 2,大概快 3

神奇的位运算

写这篇文章的主要目的就是一个不断积累的过程, 文中提到的方法其实平时很少用到,就当做是知识扩展吧 位运算中常见的一个操作 与& , 或| , 非~  异或 ^    左移位<<  又移位>> 定义我就不说了,记录几个用法直接上代码了 1,求两个数的平均值(有效防止溢出的位运算方法) int ave(int a,int b) { reutrn (a&b) + ((a^b)>>1) } 解释下,(a&b)表示a,b二进制中都为1的部分(既然是公共的部

leetCode 342. Power of Four 位运算

342. Power of Four Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example:Given num = 16, return true. Given num = 5, return false. Follow up: Could you solve it without loops/recursion? 题目大意: 判断一个数是否为4的幂. 思路