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

高洛峰
リリース: 2016-12-16 16:57:20
オリジナル
1564 人が閲覧しました

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

<< : : 左シフト演算子、num << 1、これは num を 2 で乗算することに相当します

>> : : 右シフト演算子、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 のその他のシフト演算子: <<,>>,>>> 関連記事をまとめた PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート