Java 创建从数字到二进制、字母到矩阵的转换方法
所以我在写这个程序,它模拟了一个有H和T边的coinflip,现在是创建我的方法的时候了。该程序的主要思想是,用户应该能够输入任意数字b/w 1和511。输入数字后,我的方法应该将它们的数字转换为二进制,0表示正,1表示负 因此,如果用户输入3,我的methods应该转换为000000011,然后我想将其转换为打印一个如下所示的矩阵:Java 创建从数字到二进制、字母到矩阵的转换方法,java,Java,所以我在写这个程序,它模拟了一个有H和T边的coinflip,现在是创建我的方法的时候了。该程序的主要思想是,用户应该能够输入任意数字b/w 1和511。输入数字后,我的方法应该将它们的数字转换为二进制,0表示正,1表示负 因此,如果用户输入3,我的methods应该转换为000000011,然后我想将其转换为打印一个如下所示的矩阵: HHH HHH HTT 这是到目前为止我的代码,但是我的方法(binaryConverter)是空的。我真的不知道从哪里开始 import java
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(" ");
}
}
import java.util.Scanner;
公共课问题8_11{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入一个介于0和511之间的数字:”);
int number=input.nextInt();
字符串binaryValue=二进制转换器(数字);
int[][]矩阵=新int[3][3];
int二进制=0;
对于(int i=0;i
您不需要转换为字符串-这是浪费
使用简单的位测试
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"));
}
}
专用布尔测试(int n,int位){
返回((1=0;位--){
系统输出打印(测试(n,位,“H”,“T”);
}
}
tttttthh
如果您的问题只是如何将int转换为二进制字符串,那么下面的问题已经给出了答案: 当然,您需要附加任何前导零。 因此,您的二进制转换器可以执行以下操作:
String convertToBinaryString(int i){
String bString = Integer.toBinaryString(i);
while(bString.length() < 12){
bString = "0" + bString;
}
return bString ;
}
字符串转换为二进制字符串(int i){
字符串bString=Integer.toBinaryString(i);
while(bString.length()<12){
bString=“0”+bString;
}
返回键;
}
看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只在海报已经尝试自己解决问题时才提供帮助。演示这一努力的一个好方法是将您迄今为止编写的代码包括在内,例如输入(如果有),预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能会收到越多的答案。请检查和。为什么这篇文章被标记为javascript
?我不知道该如何开始,这就是我发表这篇文章的原因。我真的不知道从哪里开始。你不必为我写,我也没有要求任何人为我写。我询问了一些建议,关于到哪里写tart.感谢您尝试了这个方法。您不需要使用字符串,只需测试数字的底部位(x&1!=0
)的0
/1
或H
/t
,然后使用右移(x=x>>1
)移到下一位。这里已经回答了:所以我尝试添加它,但现在我似乎在代码中遇到了错误。很抱歉,我在bString.length()中错过了()。现在更正了。@tcann99您可以用String binaryValue=binaryConverter(number);
替换代码中的String binaryValue=Integer.toBinaryString(i);while(bString.length()<12){bString=“0”+bString;}