30/09/2018, 16:15

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 << "
 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");
}
Quân viết 18:31 ngày 30/09/2018

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

Son Hai Tran viết 18:21 ngày 30/09/2018

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

Quân viết 18:29 ngày 30/09/2018

int i = 7;
while (i < 0)

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

Son Hai Tran viết 18:20 ngày 30/09/2018

thanks … de minh fix lai

Nguyễn Minh Dũng viết 18:24 ngày 30/09/2018

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.

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.

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

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.

Bài liên quan
0