ホームページ  >  記事  >  Java  >  Java のシフト演算子: <<、>>、>>> の概要

Java のシフト演算子: <<、>>、>>> の概要

高洛峰
高洛峰オリジナル
2016-12-16 16:57:201526ブラウズ

Java には 3 つのシフト演算子があります

924eb0c46a0d856e0930bf860302f1f6> : : 右シフト演算子、num > > ; 1、これは num を 2 で割ることに相当します

>>> : 符号なしの右シフト、符号ビットを無視し、ギャップを 0 で埋めます

これらのシフト演算がどのように使用されるかを見てみましょう

/**
 * 
 */
package com.b510.test;

/**
 * @author Jone Hongten
 * @create date:2013-11-2
 * @version 1.0
 */
public class Test {

    public static void main(String[] args) {
        int number = 10;
        //原始数二进制
        printInfo(number);
        number = number << 1;
        //左移一位
        printInfo(number);
        number = number >> 1;
        //右移一位
        printInfo(number);
    }
    
    /**
     * 输出一个int的二进制数
     * @param num
     */
    private static void printInfo(int num){
        System.out.println(Integer.toBinaryString(num));
    }
}

実行結果は次のとおりです:

1010
10100
1010

上記の結果を並べてみましょう:

位数
--------
     十进制:10     原始数         number
     十进制:20     左移一位       number = number << 1;
     十进制:10     右移一位       number = number >> 1;

上記のデモを読んで、左シフトと右シフトについてよく理解できましたか? >>>

符号なし右シフト、符号ビットを無視し、ギャップを 0

value >>> num -- num は値をシフトする桁数を指定します。

符号なし右シフトのルールについて 1 つだけ覚えておいてください。符号ビット拡張を無視し、最上位ビットを 0 で埋めてください。符号なし右シフト演算子>>> は、32 ビット値と 64 ビット値に対してのみ意味を持ちます。


Java のその他のシフト演算子: 5978a5c05168924abb7fe8a69100186c>,>>> 関連記事をまとめた PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# 配列次の記事:C# 配列