Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Code Chuyển Từ số THâp phân sang nhị phân. Giúp mình

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    0

    Mặc định Code Chuyển Từ số THâp phân sang nhị phân. Giúp mình

    hiz. Mình vừa mới học C được 2 hum. THầy giáo cóa cho 1 bài tập là. Về nhà viết 1 chương trình để chuyển số thập phân thành nhị phân. Mình nghĩ mãi mà không ra. ai cao tay có thể giúp mình được hok ạ.
    Mình gà mong đừng chê hiz :(

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Đơn giản như đang giỡn.
    Code đây nè bạn ơi.

    PHP Code:
    #include <conio.h>
    #include <stdio.h>
    main()
    {
        
    char *p="01",a[100];
        
    int n;
        
    printf("Nhap gia tri thap phan N = ");
        
    scanf("%d",&n);
        
    a[99]=0;int k=98;
        do
        {
            
    a[k--]=p[n%2];
            
    n/=2;
        }while(
    n);
        
    printf("Gia tri cua %d (thap phan) trong he nhi phan la : ",n);
        
    puts(a+k+1);
        
    getch();


  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Mặc định Code Chuyển Từ số THâp phân sang nhị phân

    dùng thuật toán đơn giản thôi:
    Chia liên tiếp số x(sô dạng thập phân ) cho 2 cho đến khi thương là 0
    mỗi lần chia thì số dư được đưa vào stack , sau khi chia xong thì lấy lần lượt các số dư ra, và in ra màn hình
    C Code:
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #include<conio.h>
    4. #define MAX 255
    5.  
    6. void push(int *s,int *top,int x)
    7. {
    8.     if(*top==MAX)
    9.     {
    10.         printf("\nStack day");
    11.         getch();
    12.         exit(0);
    13.     }
    14.      s[++(*top)]=x;
    15.     }
    16. int pop(int *s,int *top)
    17. {
    18.     if(*top==0)
    19.     {
    20.         printf("\nStack rong");
    21.         getch();
    22.         exit(0);
    23.     }
    24.     return(s[(*top)--]);
    25.     }
    26.  
    27. int main()
    28. {
    29.     int x,s[MAX],top=0;
    30.  
    31.     printf("Nhap so: ");
    32.     scanf("%d",&x);
    33.     do
    34.         push(s,&top,x%2);
    35.     while(x/=2);
    36.  
    37.     printf("\nKet qua:");
    38.     for(;top;)
    39.     printf("%d",pop(s,&top));
    40.     getch();
    41.     return 0;
    42.     }
    Đã được chỉnh sửa lần cuối bởi quangnh89 : 15-02-2009 lúc 09:53 AM. Lý do: có chỗ sử dụng biến thừa

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    33

    một bài toán có nhiều cách giải nhưng theo kin nghiệm của mình thì cách của quangnh89 là tối ưu nhất. mình khuyên bạn nên dùng theo cách đó

  5. #5
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Hehe. Các bạn nói rất đúng, rất hay, rất chuẩn. Thế nhưng để giải quyết 1 bài toán không có nghĩa là ta phải giải nó bằng những lý thuyết cao siêu, mà là phải tìm hướng nào đấy ngắn gọn, dễ hiểu, nhất là đối với bạn quangz121. Bạn ấy mới học C 2 hôm, hehe, nói thật nhé, cái thuật toán stack kia liệu bạn ấy có hiểu nổi không. Chắc chắn là không. Em cũng mới học C khoảng 2 tháng thôi, học kỳ này em ko học tin nữa, tất nhiên em học nhiều hơn bạn ấy, nhưng cái stack kia quả thật em chưa được học.

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

    Mặc định Code Chuyển Từ số THâp phân sang nhị phân. Giúp mình

    Trích dẫn Nguyên bản được gửi bởi quangz121 Xem bài viết
    hiz. Mình vừa mới học C được 2 hum. THầy giáo cóa cho 1 bài tập là. Về nhà viết 1 chương trình để chuyển số thập phân thành nhị phân. Mình nghĩ mãi mà không ra. ai cao tay có thể giúp mình được hok ạ.
    Mình gà mong đừng chê hiz :(
    Ở đây bạn chỉ cần dùng các thuật toán thao tác trên bit là giải quyết được vấn đề,code khoảng 4 -5 dòng thôi bạn ạh
    thân,

  7. #7
    Ngày gia nhập
    12 2006
    Bài viết
    28

    Mình cũng đồng ý với cách dùng của quangnh89 là dùng stack( vào trước ra sau)
    Còn nếu bạn không biết stack thì có thể dùng cách của trubavuong cũng được đó.
    bigdog

  8. #8
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Mặc định Code Chuyển Từ số THâp phân sang nhị phân

    Trích dẫn Nguyên bản được gửi bởi nntn Xem bài viết
    Ở đây bạn chỉ cần dùng các thuật toán thao tác trên bit là giải quyết được vấn đề,code khoảng 4 -5 dòng thôi bạn ạh
    thân,
    Bạn có 1 ý tưởng khá hay mà giải quyết lại đơn giản
    @quangz121: để hiểu được bài này bạn nên xem thêm về thao tác bit trong C
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int main()
    5. {
    6.     int x,i=16,matna=0x8000;
    7.  
    8.     printf("Nhap so: ");
    9.     scanf("%d",&x);
    10.     printf("\nKet qua:");
    11.     for(;i;--i)
    12.     {
    13.     if(x&matna)
    14.         printf("1");
    15.     else printf("0");
    16.     matna>>=1;
    17.     }
    18.     getch();
    19.     return 0;
    20.     }
    trong bài trên khi in sẽ có 1 chỗ không đẹp(nhưng vẫn chính xác) đó là các chữ số 0 ở đầu kiến bạn khó nhìn . vì vậy tớ có sửa lại nhưng mong bạn đọc bài trên và hiểu
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #define MAX 255
    4.  
    5.  
    6. int main()
    7. {
    8.     int x,i=16,matna=0x8000,j=0;//thêm biến j để chặn
    9.  
    10.     printf("Nhap so: ");
    11.     scanf("%d",&x);
    12.     printf("\nKet qua:");
    13.     for(;i;--i)
    14.     {
    15.     if(x&matna)
    16.         {printf("1");j=1;}
    17.     else if(j)printf("0");
    18.     matna>>=1;
    19.     }
    20.     getch();
    21.     return 0;
    22.     }

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

    bạn ơi cho tớ hỏi cái matna=0x8000 là gì? .

  10. #10
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Đấy là hằng số kiểu int viết dưới dạng số Hexa.

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

  1. Kỹ thuật C++ [HELP] giúp mình chuyển đoạn code C++ này sang C với
    Gửi bởi hoangvuong94st trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 10-04-2013, 10:12 AM
  2. Giúp chuyển code Pascal sang C#?
    Gửi bởi quandum trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 10-09-2010, 09:58 AM
  3. Chuyển code đồ họa sang OpenGL, giúp em với?
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 22-02-2010, 02:52 AM
  4. chuyển giúp mình sang code C++ với
    Gửi bởi se7ven trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 09-12-2009, 01:24 PM
  5. Chuyển code C++ sang code C, giúp mình với?
    Gửi bởi rong3sao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-04-2009, 09:28 AM

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