Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1

    Nhị phân sang thập phân

    Code sai chỗ nào ạ? thấy k sai. nếu nhập 1001=> 9 thì đúng. 1001001 =>73 thì sai liền, nó ra 121
    Mã:
    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    int n,s=0,b[50];
    void convert(long a)
    	{
    		if (a>0)
    			{
    			for(int i=0;i<20;i++)
    				{
    					b[i]=(a%10);  //Gan cac so vao mang
    					s=s+b[i]*(pow(2,i));
    					a=a/10;
    				}
    			}
    	}
    void main()
    	{
    		clrscr();
    
    		cout<<"This Program will change Binary to Decimal
    Press Your Bin Number: ";
    		cin>>n;
    		convert(n);
    		cout<<"This is your result: "<<s<<endl;
    		for(int i=0;i<10;i++)
    			cout<<" "<<b[i];
    
    		getch();
    	}

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ^ Đúng ra thớt phải dùng char* làm input.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Tôi nghĩ bạn không việc gì phải dùng mảng để lưu các số 0 và 1.
    Đặc biệt lưu ý thường kiểu long trong c++ thường khoảng 4 byte. Còn kiểu long long mới 8 byte.

    Mã:
    #define LONG long long;
    LONG convert(LONG a)
    {
    	LONG s = 0;
    	LONG t =1;
    	while(a != 0)
    	{
    		s = s + t*(a%10);
    		t = t*2;
    		a = a/10;
    	}
    	return s;
    }

  4. #4
    ^ Hơi bị lỗ, vì chỉ biểu diễn được tới 512 là hết.
    Với lại ng` ta gõ bị overflow thì sao bạn biết mà chặn đây [IMG]images/smilies/smile.png[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hung0913208
    sửa kiểu của biến n thành long đi bạn là okey. Debug là thấy khi nhận số 1001001 vào n thì nó đâu nhận đúng số 1001001 đâu do số này vuợt ra ngoài khoảng xác định của kiểu int ròi.
    Mình làm được rồi. cảm ơn bạn. lỗi rất nhỏ [IMG]images/smilies/smile.png[/IMG]

    - - - Nội dung đã được cập nhật ngày 06-01-2015 lúc 10:04 AM - - -

    Trích dẫn Gửi bởi prog10
    ^ Đúng ra thớt phải dùng char* làm input.
    mình mới nhị qua thập thôi. chứ chưa có thập lục qua trong này :3

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kdragon113
    mình mới nhị qua thập thôi. chứ chưa có thập lục qua trong này :3
    Thớt đẩy lên long thì chắc đc 10 chữ số nhị phân, dùng char* đúng hơn chớ.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •