【发布时间】:2013-09-09 21:51:26
【问题描述】:
我正在尝试使用整数数组将整数转换为二进制数。第一个转换是 toBinaryString,我得到正确的转换“11111111”,然后下一步转换为数组。这是出错的地方,我认为它是 getChar 行。
int x = 255;
string=(Integer.toBinaryString(x));
int[] array = new int[string.length()];
for (int i=0; i< string.length(); i++){
array[i] = string.getChar(i);
Log.d("TAG", " Data " + array[1] "," + array[2] + "," + array[3]);
日志显示(Data 0,0,0)我要找的结果是(Data 1,1,1)
这是最终代码,它可以工作。
// NEW
int x = 128;
string=(Integer.toBinaryString(x));
int[] array = new int[string.length()];
for (int i=0; i < string.length(); i++) {
array[i] = Integer.parseInt(string.substring(i,i+1));
}
Log.d("TAG", "Data " + array[0] + "" + array[1]+ "" + array[2] + "" + array[3]+ " " + array[4]+ "" + array[5] + "" + array[6] + "" + array[7]);
【问题讨论】:
-
你怎么称呼
String.getChar(),看不到它可用。我想知道您的应用程序在执行array[3]时如何没有崩溃,因为我看到索引为 [0,1&2] -
没有
String.getChar(int)方法。你的意思是String.charAt(int index)?尝试发布代码编译。 -
代码确实编译但我有 array[i] = string.getChar(i);因为有错误所以注释掉了。数组应为 0 到 7,因此日志不应使数组 [3] 崩溃。 Mattias,我得到一个类型不匹配:无法从 Integer[] 转换为 int[] on int digits[] = new Integer[Integer.SIZE];
-
谢谢大家,我使用了你们每个想法中的代码并让它发挥作用。再次感谢你..