import java.util.Scanner;
public class DecimalToOtherBaseConverter {
public static void main(String[] args) {
// 1. 変æ›å¯¾è±¡ã®10進数をå–å¾—
Scanner scanner = new Scanner(System.in);
System.out.print("10進数を入力ã—ã¦ãã ã•ã„: ");
int decimalNumber = scanner.nextInt();
// 2. 変æ›å…ˆã®é€²æ•°ã‚’指定
System.out.print("変æ›å…ˆã®é€²æ•°ã‚’入力ã—ã¦ãã ã•ã„(2, 8, 16ãªã©ï¼‰: ");
int targetBase = scanner.nextInt();
// 3. 10進数を指定ã•れãŸé€²æ•°ã«å¤‰æ›ã—ã¦çµæžœã‚’表示
String convertedNumber = convertDecimalToBase(decimalNumber, targetBase);
System.out.println("変æ›çµæžœ: " + convertedNumber);
// スã‚ャナをクãƒãƒ¼ã‚º
scanner.close();
}
// 10進数を指定ã•れãŸé€²æ•°ã«å¤‰æ›ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰
private static String convertDecimalToBase(int decimalNumber, int targetBase) {
return Integer.toString(decimalNumber, targetBase);
}
}
ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã—ã¦10進数ã¨å¤‰æ›å…ˆã®é€²æ•°ã‚’入力ã•ã›ã€convertDecimalToBase メソッドを使用ã—ã¦å¤‰æ›ã‚’行ã„çµæžœã‚’表示ã—ã¦ã„ã¾ã™ã€‚プãƒã‚°ãƒ©ãƒ を実行ã™ã‚‹ã¨ã€æŒ‡å®šã•れãŸé€²æ•°è¡¨ç¾ãŒå¾—られã¾ã™ã€‚
進数
進数ã¯ã€æ•°ã®è¡¨ç¾ã«ãŠã„ã¦åŸºæ•°ï¼ˆåŸºæœ¬ã¨ãªã‚‹æ•°ã®æ•°ï¼‰ã‚’ç¤ºã™æ¦‚念ã§ã™ã€‚æ•°å¦ã‚„計算機科å¦ã®æ–‡è„ˆã§ã¯ã€ä¸»ã«2進数(binary)ã€8進数(octal)ã€10進数(decimal)ã€16進数(hexadecimal)ãªã©ãŒä¸€èˆ¬çš„ã«ä½¿ã‚れã¾ã™ã€‚
以下ã«ã€ã„ãã¤ã‹ã®é€²æ•°ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ã€‚
- 2進数(Binary):
- 基数ãŒ2ã§ã‚る進数。数å—ã¯0ã¨1ã ã‘ã§æ§‹æˆã•れã¾ã™ã€‚
- 例: 101(2進数)ã¯ã€1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 5(10進数)ã¨ãªã‚Šã¾ã™ã€‚
- 8進数(Octal):
- 基数ãŒ8ã§ã‚る進数。数å—ã¯0ã‹ã‚‰7ã¾ã§ã§ã™ã€‚
- 例: 34(8進数)ã¯ã€3 * 8^1 + 4 * 8^0 = 28(10進数)ã¨ãªã‚Šã¾ã™ã€‚
- 10進数(Decimal):
- 基数ãŒ10ã§ã‚ã‚‹é€²æ•°ã€‚é€šå¸¸ã®æ•°å€¤è¡¨ç¾ã§ä½¿ã‚れã¾ã™ã€‚
- 例: 123(10進数)ã¯ã€1 * 10^2 + 2 * 10^1 + 3 * 10^0 = 123(10進数)ã¨ãªã‚Šã¾ã™ã€‚
- 16進数(Hexadecimal):
- 基数ãŒ16ã§ã‚る進数。数å—ã¯0ã‹ã‚‰9ã¾ã§ã®é€šå¸¸ã®æ•°å—ã«åŠ ãˆã¦ã€A(10)ã€B(11)ã€C(12)ã€D(13)ã€E(14)ã€F(15)ãŒä½¿ã‚れã¾ã™ã€‚
- 例: 1A(16進数)ã¯ã€1 * 16^1 + 10 * 16^0 = 26(10進数)ã¨ãªã‚Šã¾ã™ã€‚
進数ã¯ä¸»ã«ã‚³ãƒ³ãƒ”ュータサイエンスã®åˆ†é‡Žã§ä½¿ç”¨ã•れã€ç‰¹ã«2進数ã¯ã‚³ãƒ³ãƒ”ュータã®åŸºæœ¬çš„ãªæ•°å€¤è¡¨ç¾æ–¹æ³•ã§ã™ã€‚8進数や16進数もã€ãƒ“ットやãƒã‚¤ãƒˆã®ã‚°ãƒ«ãƒ¼ãƒ—化ã€ãƒ¡ãƒ¢ãƒªã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¡¨ç¾ãªã©ã§ä½¿ç”¨ã•れるã“ã¨ãŒã‚りã¾ã™ã€‚進数ã®å¤‰æ›ã¯ã€æ•°å¦ã‚„プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ãŠã„ã¦åŸºæœ¬çš„ãªæ“作ã®ä¸€ã¤ã¨ãªã£ã¦ã„ã¾ã™ã€‚
Integer.toStringを使ã£ãŸé€²æ•°ã®å¤‰æ›
Integer.toString() メソッドを使用ã—ãŸé€²æ•°ã®å¤‰æ›ã¯ã€Javaã§ç°¡å˜ã‹ã¤åŠ¹çŽ‡çš„ã«æ•°å€¤ã‚’ç•°ãªã‚‹é€²æ•°ã«å¤‰æ›ã™ã‚‹æ–¹æ³•ã®ä¸€ã¤ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æ•´æ•°ã‚’指定ã•れãŸåŸºæ•°ï¼ˆé€²æ•°ï¼‰ã«å¤‰æ›ã—ã¦æ–‡å—列ã¨ã—ã¦è¿”ã—ã¾ã™ã€‚
メソッドã®ã‚·ã‚°ãƒãƒãƒ£ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ï¼š
public static String toString(int i, int radix)
ã“ã“ã§ã€i ã¯å¤‰æ›å¯¾è±¡ã®æ•´æ•°ã€radix ã¯åŸºæ•°ï¼ˆé€²æ•°ï¼‰ã§ã™ã€‚以下ã«ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使ã£ãŸé€²æ•°ã®å¤‰æ›ã®ä¾‹ã‚’示ã—ã¾ã™ã€‚
public class BaseConversionExample {
public static void main(String[] args) {
int decimalNumber = 42;
// 10進数ã‹ã‚‰2進数ã«å¤‰æ›
String binaryRepresentation = Integer.toString(decimalNumber, 2);
System.out.println("2進数: " + binaryRepresentation);
// 10進数ã‹ã‚‰8進数ã«å¤‰æ›
String octalRepresentation = Integer.toString(decimalNumber, 8);
System.out.println("8進数: " + octalRepresentation);
// 10進数ã‹ã‚‰16進数ã«å¤‰æ›
String hexadecimalRepresentation = Integer.toString(decimalNumber, 16);
System.out.println("16進数: " + hexadecimalRepresentation);
}
}
ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯ã€Integer.toString(decimalNumber, radix) を使用ã—ã¦ã€decimalNumber を指定ã•れãŸåŸºæ•°ã«å¤‰æ›ã—ã¦ã„ã¾ã™ã€‚例ã§ã¯ã€10進数ã®42ã‚’ãれãžã‚Œ2進数ã€8進数ã€16進数ã«å¤‰æ›ã—ã¦ã„ã¾ã™ã€‚
ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯éžå¸¸ã«ä¾¿åˆ©ã§ã€æ•°å€¤ã®é€²æ•°å¤‰æ›ã‚’手軽ã«è¡Œã†ã“ã¨ãŒã§ãã¾ã™ã€‚
「013 クラスライブラリã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント