用java写一段代码我马上30岁了。二进制描述我今天30岁了 二进制的话,我今天11110岁了 十六进制的话,我今天1E岁了 八进制的话,我今天36岁了
时间: 2024-09-12 20:02:35 浏览: 16
在Java中,我们可以使用`Integer`类的静态方法来将十进制的年龄转换为其他进制表示。这里是一个简单的示例:
```java
public class AgeInDifferentBases {
public static void main(String[] args) {
int ageInDecimal = 30;
// 二进制转换
String binaryAge = Integer.toBinaryString(ageInDecimal);
System.out.println("二进制表示: " + binaryAge);
// 十六进制转换
String hexAge = Integer.toHexString(ageInDecimal);
System.out.println("十六进制表示: " + hexAge);
// 八进制转换
String octalAge = Integer.toOctalString(ageInDecimal);
System.out.println("八进制表示: " + octalAge);
}
}
```
当你运行这段代码,它会打印出对应不同进制的数字表示。注意,对于年龄30这个特殊的值,由于十六进制和八进制的表示有限,所以直接显示为1E和36。
相关问题
题目描述]: 输入两个二进制数,求两个数相加的结果 [输入格式]:从键盘输入两个正整数 n1和 n2,代表两个二进制数的位数,接下来两行输入长度分别为 n1 和 n2 的数组,数组元素为 0或者1(长度大于1 时,第一个元素必不为0),数组元素用空格隔开Java
你好啊,欢迎和我对话!关于你的问题,我可以给出一个Java代码实现:
```
import java.util.Scanner;
public class BinarySum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n1 = input.nextInt();
int n2 = input.nextInt();
int[] a1 = new int[n1];
int[] a2 = new int[n2];
for (int i = 0; i < n1; i++) {
a1[i] = input.nextInt();
}
for (int i = 0; i < n2; i++) {
a2[i] = input.nextInt();
}
int[] res = binarySum(a1, a2);
for (int i = res.length - 1; i >= 0; i--) {
System.out.print(res[i] + " ");
}
}
public static int[] binarySum(int[] a1, int[] a2) {
int len = Math.max(a1.length, a2.length);
int[] res = new int[len + 1];
int carry = 0;
for (int i = 0; i < len; i++) {
int sum = carry;
if (i < a1.length) {
sum += a1[i];
}
if (i < a2.length) {
sum += a2[i];
}
res[i] = sum % 2;
carry = sum / 2;
}
if (carry > 0) {
res[len] = carry;
}
else {
int[] newRes = new int[len];
System.arraycopy(res, 0, newRes, 0, len);
res = newRes;
}
return res;
}
}
```
这段代码实现了输入两个二进制数,求它们相加的结果。具体思路是对每一位进行加法运算,将进位保存下来并在下一位相加时加上。最后需要注意是否还有进位,如果有的话需要在最高位加上。我希望我的回答能对你有所帮助!