import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// スã‚ャナーを使ã£ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰æ•´æ•°ã®å…¥åŠ›ã‚’èªã¿å–ã‚‹
Scanner scanner = new Scanner(System.in);
System.out.print("整数を入力ã—ã¦ãã ã•ã„: ");
int number = scanner.nextInt(); // æ•´æ•°ã®å…¥åŠ›ã‚’èªã¿å–り
// 2番目ã®ãƒ“ットをå転
int mask = 1 << 1; // 2番目ã®ãƒ“ットã«å¯¾å¿œã™ã‚‹ãƒ“ットマスク
int result = number ^ mask; // XOR演算を使用ã—ã¦2番目ã®ãƒ“ットをå転
// çµæžœã‚’表示
System.out.println("2番目ã®ãƒ“ットをå転ã—ãŸçµæžœ: " + result);
}
}
ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰æ•´æ•°ã®å…¥åŠ›ã‚’å—ã‘å–りã€2番目ã®ãƒ“ットをå転ã•ã›ã¦çµæžœã‚’表示ã—ã¾ã™ã€‚ビットã®å転ã«ã¯XOR演算å(^)を使用ã—ã€2番目ã®ãƒ“ットをå転ã•ã›ã¦ã„ã¾ã™ã€‚
ビットã®å転
ビットã®å転(ビットå転)ã¯ã€æ•´æ•°ã‚„ビット列内ã®å„ビットã®å€¤ã‚’å転ã•ã›ã‚‹æ“作ã§ã™ã€‚å転ã™ã‚‹ã¨ã€0ã¯1ã«ã€1ã¯0ã«å¤‰ã‚りã¾ã™ã€‚ã“れã¯ã€ç‰¹å®šã®ãƒ“ットãŒå転ã™ã‚‹ã“ã¨ã§ã€ãƒ“ット列内ã®å„ビットã®å€¤ãŒé€†è»¢ã™ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚
ビットã®å転ã«ã¯ãƒ“ット演算å「XOR (^)ã€ã‚’使用ã—ã¾ã™ã€‚XOR演算ã¯ã€2ã¤ã®ãƒ“ットãŒç•°ãªã‚‹å ´åˆã«1ã‚’è¿”ã—ã€åŒã˜å ´åˆã«0ã‚’è¿”ã—ã¾ã™ã€‚ã—ãŸãŒã£ã¦ã€ç‰¹å®šã®ãƒ“ットをå転ã•ã›ã‚‹ã«ã¯ã€XOR演算åã‚’ãã®ãƒ“ットã«å¯¾å¿œã™ã‚‹ãƒ“ットマスクã¨ä½¿ç”¨ã—ã¾ã™ã€‚ã“ã®ãƒ“ットマスクã«ã¯ã€ç‰¹å®šã®ãƒ“ットãŒ1ã§ã‚ã‚‹ã“ã¨ã‚’示ã™ãƒ“ットãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
例ãˆã°ã€æ•´æ•°ã®2番目ã®ãƒ“ット(å³ã‹ã‚‰2番目)をå転ã•ã›ã‚‹å ´åˆã€2番目ã®ãƒ“ットã«å¯¾å¿œã™ã‚‹ãƒ“ットマスクを用ã„ã¦XOR演算を行ã„ã¾ã™ã€‚ã“ã®æ“作ã¯ã€æŒ‡å®šã•れãŸãƒ“ットをå転ã™ã‚‹åŠ¹æžœãŒã‚りã¾ã™ã€‚
ビットã®å転ã¯ã€ç‰¹å®šã®ãƒ“ットã®å€¤ã‚’トグルã•ã›ãŸã„å ´åˆã‚„ã€ç‰¹å®šã®ãƒ•ラグを切り替ãˆã‚‹éš›ã«ä½¿ç”¨ã•れã¾ã™ã€‚ã¾ãŸã€ãƒ“ットæ“作ã¯ã€ã‚³ãƒ³ãƒ”ュータã®ä½Žãƒ¬ãƒ™ãƒ«ãªåˆ¶å¾¡ã‚„データ処ç†ã«ãŠã„ã¦é‡è¦ãªå½¹å‰²ã‚’æžœãŸã—ã¾ã™ã€‚
以下ã¯ã€ãƒ“ットå転ã®ä¸€èˆ¬çš„ãªä¾‹ã¨ã—ã¦ã€æ•´æ•°ã®2番目ã®ãƒ“ットをå転ã•ã›ã‚‹Javaコードã§ã™ï¼š
int number = 10; // 例ã¨ã—ã¦æ•´æ•°10を使用
int mask = 1 << 1; // 2番目ã®ãƒ“ットã«å¯¾å¿œã™ã‚‹ãƒ“ットマスク
int result = number ^ mask; // XOR演算を使用ã—ã¦2番目ã®ãƒ“ットをå転
ã“ã®ã‚³ãƒ¼ãƒ‰ã¯ã€æ•´æ•°10ã®2番目ã®ãƒ“ットをå転ã—ã€result 変数ã«å転後ã®å€¤ã‚’æ ¼ç´ã—ã¾ã™ã€‚
「003 演算åã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント