Code chuyển từ hệ cơ số 10 sang hệ cơ số 2 cho kết quả không như ý muốn

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]);
			}
	}
  • n % 2 có bao giờ quá 10 đâu mà bạn phải cho if b < 10 và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?