gpt4 book ai didi

java - 如何根据用户输入的位字符串用 1's and 0' 填充数组

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

我目前正在尝试完成一项硬件作业,但老实说,我很困惑如何才能克服这一点。

我应该要求用户提供长度为 24、由 1 和 0 组成的位串。我似乎无法理解如何用只有 1 的值来填充每个数组槽。在给出 1 和 0 的 24 位字符串后,我想将该 24 位字符串转换为 3 个独立的 8 位整数分量,这些分量表示 0-255 之间的数字,假设该数字具有 RGB 比例的值。

例如,我将采用“111111110000000000000000”的位串,这将代表红色的“111111111”,即255,绿色的“00000000”,即0和蓝色的“00000000”,所以这个值将代表纯红色。

我非常不知道该怎么做才能开始,但我认为它是这样的

import java.util.Scanner;
public class Test {
public static void main(String args[]){
String[] bitString;
bitString = new String[24];

Scanner consuleInput = new Scanner(System.in);
System.out.println("what is your input bit string?");
for(int i=0;i < bitstring.length; i++) {
bitString = consuleInput.nextLine();
// this was my rough idea on how to go through the array at everyone spot
// and fill in a 0 or 1 depending on what the giving bitString is
}

当谈到将位串分成三个部分时,我真的不确定。我认为这就像您将 [0] 到 [7] 的位字符串数组分配给 redValue,将 [8]-[15] 分配给绿色,将 [16]-[23] 分配给蓝色。将这三个分开后,我会使用类似的东西

 int re = Integer.parseInt(redValue, 2);

这将为我提供从 bitString[0] 到 bitString[7] 的 1 和 0 字符串的整数值。我只是不完全确定如何实现它。

最佳答案

在您的原始代码中,for 循环条件中有一个拼写错误 - bitstring 应该是 bitString。您还尝试将 String 分配给整个数组 (String[])。您需要访问某个索引处的数组,然后为其赋值。

for (int i = 0; i < bitString.length; i++) {
bitString[i] = consuleInput.nextLine();
}

但是,我提出了一个更好的方法。不要一次一位地获取输入,而是获取整个字符串并使用 subtring() 将每 8 位转换为十进制。如果需要,您仍然可以实现验证,以便在字符串长度不是 24 个字符或不是二进制值时打印错误。

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("what is your input bit string?");
String input = scanner.nextLine();

int[] rgb = {
Integer.parseInt(input.substring(0, 8), 2),
Integer.parseInt(input.substring(8, 16), 2),
Integer.parseInt(input.substring(16, 24), 2)
};
}

关于java - 如何根据用户输入的位字符串用 1's and 0' 填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517916/

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