Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: chuyển thập phân sang nhị phân

  1. #1
    Ngày gia nhập
    04 2010
    Bài viết
    16

    Mặc định chuyển thập phân sang nhị phân

    bài này hơi gà, anh em giúp mình tí nha,mình mới học c++ àh.
    viết chương trình nhập vào một số nguyên thập phân gồm tối đa 10 chữ số và in ra giá trị nhị phân của nó.
    (mình chuyển sang chuỗi 01 rồi nhưng không có cách nào đảo chuổi đó lại (chia 2 lấy dư),mình mới học có thư viện <iostream.h>, cấu trúc lặp while,do while, for,if và if else thôi nên các anh em viết trong phạm vi đó để mình hiểu với nha)
    thank anh em nhiều.

  2. #2
    Ngày gia nhập
    10 2008
    Nơi ở
    đại học vinh
    Bài viết
    283

    bạn có thể dùng một mảng để lưu các giá trị 0,1 đó rồi sau đó in ngược mảng đó ra .

  3. #3
    Ngày gia nhập
    02 2010
    Bài viết
    113

    PHP Code:
    #include<stdio.h> 

    #include<conio.h> 

    #include<math.h> 

    void daobit(int a[],int &n); 

    void congbu(int a[],int &n); 
    void NhiPhanSangThapPhan(int b[10], int &m);





    void nhiphan int a[10],int &n

    {



                
    printf("nhap so can chuyen tu thap phan sang nhi phan :"); 

                
    scanf("%d", &n); 



                for(
    int  i=0i<10i++) 

                {



                            
    a[i]=0;



                }







                
    int m







                if(
    n<0

                            
    m=abs(n); 

                else

                            
    m=n;



                
    //nhi phan so duong 



                
    9;

                while(
    m!=0

                {



                            
    a[i]=m%2;



                            
    m=m/2;



                            
    i--;



                }





                if(
    n<0

                {



                            
    daobit(a,n);

                

                            
    congbu(an);

                

                }



                

    }



    void xuatnhiphan(int a[], int n

    {



                
    printf("So %d da chuyen sang nhi phan la: "n); 



                for(
    int i0i<10;i++) 

                {





                            
    printf("%d"a[i]); 

                }

    }

    void daobit(int a[],int &n

    {





                for(
    int i=0i<10i++) 

                {





                            if(
    a[i]==0

                            {

                

                                        
    a[i]=1;



                            }



                

                            else 

                            {

                

                                        
    a[i]=0;

                            

                            }

                }



    }



    void congbu(int a[],int &n//congthem 1 

    {





                
    int nho=1;

                for(
    int i=9;i>0;i--) 

                {

                            
    int x a[i] + nho;

                            if (
    x>1)

                            {

                                        
    a[i]=0;

                                        
    nho 1;

                            }

                            else

                            {

                                        
    a[i] = x;

                                        
    nho =0;

                                        break;

                            }

                }





    }


    void NhiPhanSangThapPhan(int b[10], int &m)
    {
     
    printf("\nNhap so can chuyen tu nhi phan sang thap phan:");
     
    scanf("%d",&m);
     
    int S=0;
     
    int i=0;

     while(
    m!=0)
     {
      
    b[i]=m%10;
      
    m=m/10;
      
    i++;
     }

     for(
    int j=0;j<9;j++)
     {
      
    S=S+b[j]*(int)pow(2,j);
     }
     
    printf("So tren trong he thap phan la: %d\n",S-b[9]*(int)pow(2,9));
    }
    void congnhiphan(int c[10], int d[10], int kint h)
    {
     
    printf("nhap so thu 1 de cong: ");
     
    scanf("%d",&k);
     
    printf("nhap so thu 1 de cong: ");
     
    scanf("%d",&h);
     for(
    int i=0i<10i++)
     {
      for(
    int j=0;j<10;j++)
      {

      }
     }

    }
    void main() 

    {





                
    int a[10]; 



                
    int n


       
    int b[10]={0};

       
    int m;
               
    nhiphan(an);

                
    xuatnhiphan(an);
       
    NhiPhanSangThapPhan(b,m);



    ngc lại luôn đó

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    16

    mình chưa học mảng lấy gì mà dùng?

  5. #5
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    bài này trên diễn đàn có nhiều rồi, bạn search đi

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    16

    Mặc định chuyển thập phân sang nhị phân

    Trích dẫn Nguyên bản được gửi bởi wolfag Xem bài viết
    bài này hơi gà, anh em giúp mình tí nha,mình mới học c++ àh.
    viết chương trình nhập vào một số nguyên thập phân gồm tối đa 10 chữ số và in ra giá trị nhị phân của nó.
    (mình chuyển sang chuỗi 01 rồi nhưng không có cách nào đảo chuổi đó lại (chia 2 lấy dư),mình mới học có thư viện <iostream.h>, cấu trúc lặp while,do while, for,if và if else thôi nên các anh em viết trong phạm vi đó để mình hiểu với nha)
    thank anh em nhiều.
    ae chú ý dòng đỏ đó dùm e

  7. #7
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    C++ Code:
    1. #include "stdafx.h"
    2. #include "iostream"
    3. #include "iomanip"
    4. using namespace std;
    5. void main()
    6. {
    7.     int n,a[10],i=0,x;
    8.     cout<<"Nhap vao n =";
    9.     cin>>n;
    10.     while(n>0)
    11.     {
    12.         x = n % 2;
    13.         n = n / 2;
    14.         a[i] =  x;
    15.         i++;
    16.     }
    17.     for(int j=i-1;j>=0;j--)
    18.         cout<<a[j];
    19.     cout<<endl;
    20.     system("pause");
    21. }
    nhược điểm của bài này là chưa đổi số âm sang hệ nhị phân được, ai chỉ em cách đổi số âm với :((

  8. #8
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Muốn đổi số âm sang nhị phân cần phải biết số dài bao nhiêu (bit).

    Bài này muốn dùng mảng thì phải xác định số bit BMAX. Dùng sô bit BMAX mặc định độ dài mảng. Đặt trước tất cả các pt là 0. Đặt i khởi đầu là BMAX-1.
    Dùng con số absolute(n) để tính. Lúc làm con toán chia n%2 thì ghi giá trị vào pt i và giảm i xuống 1. Sau khi làm xong, xét nếu n < 0 thì trở lại lật mọi giá tri pt 0 thành 1 và ngược lại.

    Nếu không muốn dùng mảng thì có 1 cách khác:
    Nên nhớ là bài chỉ kêu in ra kq chứ không bảo tính kq. Vì vậy ta có thể dùng hàm đệ quy để in
    Code:
    void InTriNhiPhan(int n)
    {
        if (n > 1) InTriNhiPhan(n/2);
        printf("%d", n%2);
    }
    Cách này chỉ tính được số dương, số âm khó hơn nhiều vì cần phải tính số bit.

    Cẩn thận: hình như int không chứa nổi 10 chữ số.

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    16

    máy e báo "Cannot open include file: 'stdafx': No such file or directory" thì làm sao bác?

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    bạn phải khai báo là #include "stdafx.h" chứ nhỉ ?
    bạn post code của bạn để các bác sĩ chẩn mạch cho chính xác :P

Các đề tài tương tự

  1. Làm sao để chuyển toàn bộ project từ vs 2008 sang 2003
    Gửi bởi kirofan trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 04-01-2012, 11:31 AM
  2. Cây nhị phân tìm kiếm ! Help me!
    Gửi bởi tucute89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 12-06-2010, 09:32 PM
  3. chuyển code của chữ ký điện tử từ c++ sang visual c++
    Gửi bởi truc_man trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 22-03-2010, 05:21 PM
  4. Chuyển project từ VC++ 2008 sang VC++ 6.0 ????
    Gửi bởi binhpv trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 19-09-2009, 07:23 PM
  5. [C]Chuyển số lớn từ hệ thập phân sang nhị phân
    Gửi bởi Vô Ảnh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 03-11-2008, 08:07 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn