int a = 17;
String aa = Integer.toBinaryString((int) a);
int sum=0;
for(int i=0;i<aa.length();i++)
{
if(aa.charAt(i)==49)
{
sum++;
}
} if(sum==1)
{
System.out.println("yes");
}else
{
System.out.println("no");
} 这个算法,我认为 aa.charAt(i) 值应该是1 转换成整形 应该是 (int)1 怎么会等于49?
charAt这个不知道怎么用……
toBinaryString(),转化为ASCII码的字符串
遍历字符串,找出为1的字符有多少个不清楚java中字符和数字可不可以互相转换等待高手答疑
然后,aa.charAt(0)返回的是字符 '1' 而字符 '1' 就是等于int的49
你可以这样:
char c='1';
System.out.println(c==49);
然后,aa.charAt(0)返回的是字符 '1' 而字符 '1' 就是等于int的49
你可以这样:
char c='1';
System.out.println(c==49); 该答案正确.
Bin Dec Hex 缩写/字符 0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9