gpt4 book ai didi

java - 创建一种从数字转换为二进制、字母、矩阵的方法

转载 作者:行者123 更新时间:2023-12-02 11:36:23 24 4
gpt4 key购买 nike

所以我正在编写这个程序来模拟边为 H 和 T 的硬币翻转,现在是时候创建我的方法了。该程序背后的主要思想是用户应该能够输入任何黑白 1 和 511 的数字。输入数字后,我的方法应该将其数字转换为二进制,0 是正面,1 是反面。

因此,如果用户输入 3,我的方法应该转换为 000000011,然后我想将其转换为打印如下矩阵:

  HHH
HHH
HTT

这是到目前为止我的代码,但是我的方法(binaryConverter)是空的。我真的不知道从哪里开始。

import java.util.Scanner;
public class Problem8_11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);

System.out.print("Enter one number between 0 and 511: ");
int number = input.nextInt();

String binaryValue = binaryConverter(number);

int[][] matrix = new int[3][3];
int binary = 0;

for (int i = 0; i < matrix.length; i++) {
for (int x = 0; x < matrix[i].length; x++) {
int HeadOrTails = (binaryValue.charAt(binary++) == '0') ? 0 : 1;
matrix[x][i] = HeadOrTails;
}
}
for (int i = 0; i < matrix.length; i++) {

for (int x = 0; x < matrix[i].length; x++) {
char HorT = (matrix[i][x] == 0) ? 'H' : 'T';
System.out.print(HorT + "");
}
System.out.println(" ");
}

}

最佳答案

您不需要转换为字符串 - 这是浪费。

使用简单的位测试。

private boolean test(int n, int bit) {
return ((1 << bit) & n) != 0;
}

private String test(int n, int bit, String t, String f) {
return test(n, bit) ? t : f;
}

public void test(String[] args) {
int n = 3;
for (int bit = 8; bit >= 0; bit--) {
System.out.print(test(n, bit, "H", "T"));
}
}

TTTTTTTHH

关于java - 创建一种从数字转换为二进制、字母、矩阵的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48911011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com