public static void Convert(char[] a,int n)
{
int i=0,b=0;
while (n>=1)
{
b=n%2;
if ( b < 10)
{
a[i] = (char) ('0' + b);
}
else
{
a[i] = (char) ('A'+( b -10 ));
}
i++;
n/=2;
}
a[i]='\0';
for (i = n ;i >= 0; i--)
{
System.out.println(a[i]);
}
}
Code chuyển từ hệ cơ số 10 sang hệ cơ số 2 cho kết quả không như ý muốn
-
n % 2có bao giờ quá 10 đâu mà bạn phải choif b < 10vào làm gì? - Bạn lấy code chuyển hệ 10 -> hệ 16 rồi sửa thành hệ 10 -> hệ 2 đúng không?
Ở trên vừa chia n đến không còn gì nữa, giờ bạn chạy n có ý nghĩa gì?
Ngoài ra, biến i của bạn có tác dụng gì? Nếu cho vào vòng lặp thì biến chạy sẽ là biến gì?
Bạn biết chỉ mình với
Bạn đọc lại code bạn vài lần rồi tự debug xem.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?