Lỗi vòng lặp while khi chuyển số thập phân có dấu sang hệ nhị phân?

Chương trình mình không báo lỗi. Nhưng minh debug từng câu lệnh thì nó tới khúc vong lập đó nó không chạy mà nhảy xuống cậu lệnh for in ra luôn.

#include<iostream>
#include<math.h>
using namespace std;

void doi10qua2(int n)
{
	int a[32], i;
	if (n > 0)
	{

	

		for (i = 0; i < 8; i++) a[i] = 0; 
		
		while (n != 0 && i >= 0)
		{
			a[--i] = n % 2;
			n = n / 2;
			
		}
		
		for (i = 0; i < 8; i++)cout << a[i]; 
		cout << endl;
	}

	else
	
	{
		n = abs(n);
		

		for (i = 0; i < 8; i++) a[i] = 0; 
		while (n != 0 && i >= 0)
		{
			a[--i] = n % 2;  
			n = n / 2;

		}
	for (i = 0; i < 8; i++)
		{
			if (a[i] == 0)
			{
				a[i] = 1;
			}
			else
			
				a[i] = 0;
			
		}
// khúc nay e tìm dc phàn số bù 1 rồi .. sao nó không chịu chạy vào vào while de tìm số bù 2
	int i = 7;
	while (i < 0)
	{
		if (a[i] == 0)
		{
			a[i] = 1;
			break;
		}
		else
		{


			a[i] = 0;
			
		}
		i--;
	}
		for (i = 0; i < 8; i++)cout << a[i]; 
		cout << endl;


	}
}


int main()
{
	int a = pow(2, 7) - 1,
		b = pow(-2, 7);
	cout << "\n char la kieu so nguyen 1 byte (luu dc cac so nguyen co pham vi tu -128=-2^7 den 127=(2^7)-1)"<<endl;
	cout << " so nguyen lon nhat co the luu dang thap phan la :" << a << endl;
	cout << " so nguyen nho nhat co the luu dang thap phan la :" << pow(-2, 7) << endl;
	
	cout << "so nguyen nho nhat co the luu dang nhi phan  la :" << endl;
	doi10qua2(b);
	
	system("pause");
}

Lỗi thế nào bạn?..

1 Like

không báo lỗi … nhung minh debug từng câu lệnh thì nó tới khúc vong lập đó nó hk chạy … nhảy xuong cậu lệnh for in ra lun

1 Like

Thế này làm sao nó vào while đk ?

1 Like

thanks … de minh fix lai

1 Like

Anh đóng góp ý kiến về câu hỏi của em nhé. Câu hỏi của em được đánh giá 5/10 điểm. Để nâng cao điểm số em cần ghi thông tin câu hỏi trước khi post code. anh đã sửa và thêm câu hỏi ở đầu.

Sau đó là phần tiêu đề, tiêu đề của em viết rất tốt, tiếc là thay vì dùng tag [Hỏi] em hãy đặt một dấu hỏi ở cuối câu hỏi là được :smile:

Em biết định dạng code + điểm nè, đặt tiêu đề câu hỏi cũng khá rõ ràng + điểm nữa. Tiếc là không có nội dung câu hỏi thôi


P/S1: Đạt đã sửa câu hỏi ở trên

P/S2: Trong các bạn ở diễn đàn, có nhiều bạn hoạt động tích cực, các bạn sẽ sớm lên Level 3. Khi lên Level 3, các bạn hãy giúp Đạt sửa các câu hỏi lại sao cho phù hợp với nội dung topic.

Cảm ơn các bạn, có các bạn, chúng ta sẽ xây dựng được một cộng đồng học tập / thảo luận một cách thông minh hơn.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?