import java.util.Scanner;
public class BitShiftExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// æ•´æ•°ã®å…¥åŠ›
System.out.print("整数を入力ã—ã¦ãã ã•ã„: ");
int number = scanner.nextInt();
// シフトã™ã‚‹ãƒ“ット数ã®å…¥åŠ›
System.out.print("シフトã™ã‚‹ãƒ“ット数を入力ã—ã¦ãã ã•ã„: ");
int shiftAmount = scanner.nextInt();
// ビットシフト演算を実行
int shiftedResult = number << shiftAmount;
// çµæžœã‚’表示
System.out.println("ã‚·ãƒ•ãƒˆçµæžœ: " + shiftedResult);
scanner.close();
}
}
ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰æ•´æ•°ã¨ã‚·ãƒ•トã™ã‚‹ãƒ“ット数をå—ã‘å–りã€å·¦ã‚·ãƒ•ト演算å << を使用ã—ã¦æ•´æ•°ã‚’指定ã•れãŸãƒ“ット数ã ã‘å·¦ã«ã‚·ãƒ•トã—ã¾ã™ã€‚ãã—ã¦ã€çµæžœã‚’表示ã—ã¾ã™ã€‚ユーザーãŒå…¥åŠ›ã—ãŸæ•´æ•°ã‚’指定ã•れãŸãƒ“ット数ã ã‘å·¦ã«ã‚·ãƒ•トã™ã‚‹ã“ã¨ã§ã€ãƒ“ットãŒå·¦ã«ç§»å‹•ã—ã€æ•´æ•°ã®å€¤ãŒå¤‰åŒ–ã—ã¾ã™ã€‚
ビットシフト
「ビットシフトã€ã¨ã¯ã€ä¸»ã«ãƒ“ットå˜ä½ã§ã®ãƒ‡ãƒ¼ã‚¿ã®ç§»å‹•ã‚„æ“作を指ã™ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ç”¨èªžã§ã™ã€‚シフトæ“作ã¯ã€ãƒ“ット列内ã®ãƒ“ット(0ã¾ãŸã¯1)を指定ã•ã‚ŒãŸæ–¹å‘ã«ç§»å‹•ã•ã›ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚
主ãªã‚·ãƒ•トæ“作ã«ã¯ã€å·¦ã‚·ãƒ•ト(ビットを左ã«ç§»å‹•)ã¨å³ã‚·ãƒ•ト(ビットをå³ã«ç§»å‹•)ã®2ã¤ãŒã‚りã¾ã™ã€‚
- 左シフト(Left Shift):
- 左シフト演算åã¯é€šå¸¸
<<ã§è¡¨ã•れã¾ã™ã€‚ - 整数を指定ã•れãŸãƒ“ット数ã ã‘å·¦ã«ç§»å‹•ã•ã›ã€æ–°ãŸã«ç©ºç™½ã§åŸ‹ã‚られãŸãƒ“ットã¯0ã«ãªã‚Šã¾ã™ã€‚
- 左シフトã«ã‚ˆã£ã¦æ•°å€¤ã¯2ã®ã¹ãä¹—å€ã«å¢—åŠ ã—ã¾ã™ã€‚ãŸã¨ãˆã°ã€æ•´æ•°1ã‚’1ビット左ã«ã‚·ãƒ•トã™ã‚‹ã¨2ã«ãªã‚Šã¾ã™ã€‚
- 左シフト演算åã¯é€šå¸¸
- å³ã‚·ãƒ•ト(Right Shift):
- å³ã‚·ãƒ•ト演算åã¯é€šå¸¸
>>ã§è¡¨ã•れã¾ã™ã€‚ - 整数を指定ã•れãŸãƒ“ット数ã ã‘å³ã«ç§»å‹•ã•ã›ã¾ã™ã€‚æ–°ãŸã«ç©ºç™½ã§åŸ‹ã‚られるビットã®å€¤ã¯ã€é€šå¸¸ã€å…ƒã®æœ€ä¸Šä½ãƒ“ット(最左端ã®ãƒ“ット)ã®å€¤ã¨åŒã˜ã§ã™ã€‚
- å³ã‚·ãƒ•トã«ã‚ˆã£ã¦æ•°å€¤ã¯2ã®ã¹ãä¹—ã§å‰²ã‚‰ã‚Œã¾ã™ã€‚ãŸã¨ãˆã°ã€æ•´æ•°4ã‚’1ビットå³ã«ã‚·ãƒ•トã™ã‚‹ã¨2ã«ãªã‚Šã¾ã™ã€‚
- å³ã‚·ãƒ•ト演算åã¯é€šå¸¸
ビットシフトã¯ã€ä¸»ã«ä»¥ä¸‹ã®ã‚ˆã†ãªç”¨é€”ã§ä½¿ç”¨ã•れã¾ã™ï¼š
- æ•´æ•°ã®2進数表ç¾ã‚’æ“作ã—ã€ãƒ“ットマスクを生æˆã™ã‚‹ãŸã‚。
- 2進数表ç¾ã®å€¤ã‚’å€å¢—ã¾ãŸã¯åŠåˆ†ã«ã™ã‚‹ãŸã‚。
- ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢åˆ¶å¾¡ã‚„データ圧縮アルゴリズムã§ä½¿ç”¨ã•れるビットæ“作を実行ã™ã‚‹ãŸã‚。
ビットシフトã¯ã€ãƒ—ãƒã‚°ãƒ©ãƒ 内ã§ãƒ“ãƒƒãƒˆãƒ¬ãƒ™ãƒ«ã®æ“作を行ã†éš›ã«éžå¸¸ã«æœ‰ç”¨ã§ã€åŠ¹çŽ‡çš„ãªã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®å®Ÿè£…ã«å½¹ç«‹ã¡ã¾ã™ã€‚ Javaã‚„ä»–ã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã§ã¯ã€ãƒ“ットシフト演算åを使用ã—ã¦ãƒ“ットシフトを実行ã§ãã¾ã™ã€‚
「003 演算åã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント