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ố 11 kết quả

Đề tài: In ra số hex

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

    Mặc định In ra số hex

    Cho tớ hỏi bài này thuật toán của nó là gì? cái 0x1000 có phải là 10^3 không???.Mong được các bạn giúp đỡ!.
    C Code:
    1. #include<stdio.h>
    2. void main()
    3. {
    4.  unsigned number;
    5.  char hex[]="0123456789ABCDEF";
    6.  printf(" Nhap vao gia tri nguyen duong 16 bit:");
    7.  scanf("%u",&number);
    8.  printf("gia tri Hex tuong ung =%c%c%c",hex[number/0x1000],hex[(number/0x100)%0x10],hex[(number/0x10)%0x10],hex[number%0x10]);
    9.  unsigned getch();
    10. }
    Cho tớ hỏi bài này thuật toán của nó là gì? cái 0x1000 có phải là 10^3 không???.Mong được các bạn giúp đỡ!
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 01-02-2009 lúc 10:24 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Chào bạn!

    Số hex trong C/C++ được viết bắt đầu bởi 0x**** (dấu * là giá trị của số hex) vd: 0xFF

    Và vì thế cái 0x1000 là số hex 1000 chuyển sang hệ 10 nó là 16^3 (nhưng hệ 10 là gì không quan trọng)

    Giải thích cho bài trên như này:
    - Nếu ta có một số hệ 10 là abc thì
    abc/100 = a
    abc/10%10 = b
    abc%10 = c

    - Với hệ hex ta chỉ cần sửa chút ít
    0xabc/0x100 = 0xa
    0xabc/0x10%0x10 = 0xb
    0xabc%0x10 = 0xc

    Dòng code này
    Code:
    printf("gia tri Hex tuong ung =%c%c%c",hex[number/0x1000],hex[(number/0x100)%0x10],hex[(number/0x10)%0x10],hex[number%0x10]);
    Cần sửa thành:
    Code:
    printf("gia tri Hex tuong ung =%c%c%c",hex[number/0x1000],hex[(number/0x100)%0x10],hex[number%0x10]);
    Nó chỉ in đc ra số hex có 3 chữ số.

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

    cám ơn bạn thank thank!!!!!!!!

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

    Đơn giản thôi bạn.
    PHP Code:
    #include <conio.h>
    #include <stdio.h>
    main()
    {
           
    int n;printf("Nhap N = ");scanf("%d",&n);
           
    printf("So %d o he thap phan co gia tri o he hexa la : %X",n,n);
           
    getch();


  5. #5
    Ngày gia nhập
    01 2009
    Nơi ở
    Tân ấp - Hà Nội
    Bài viết
    20

    Làm thế này đâu có được, số hex nó phải biểu diễn dạng 0123456789abcdef
    Em còn nhớ hay em đã quên
    Nhớ Sài Gòn mưa rồi chợt nắng
    Nhớ phố xưa quen biết tên bàn chân
    Nhớ đèn đường từng đêm thao thức
    Sáng cho em vòm lá me xanh

  6. #6
    Ngày gia nhập
    11 2008
    Nơi ở
    Hà Nội
    Bài viết
    70

    Mặc định In ra số hex

    Trích dẫn Nguyên bản được gửi bởi thongnlkh_aptech Xem bài viết
    Làm thế này đâu có được, số hex nó phải biểu diễn dạng 0123456789abcdef
    Cậu đang nói đến code của ai vậy ???
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

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

    tớ thấy trong 1 giáo trình nó ghi %u mới là Số nguyên hex không dấu chứ % x là Số nguyên thập phân không dấu mà.

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

    Trích dẫn Nguyên bản được gửi bởi drak77 Xem bài viết
    tớ thấy trong 1 giáo trình nó ghi %u mới là Số nguyên hex không dấu chứ % x là Số nguyên thập phân không dấu mà.
    Cậu cứ chạy thử là biết liền mà.
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

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

    Code tớ chạy tốt mà.
    VD: 2008 --> 7D8

  10. #10
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    tớ thấy trong 1 giáo trình nó ghi %u mới là Số nguyên hex không dấu chứ % x là Số nguyên thập phân không dấu mà.
    Nhớ ngược rồi bạn.

    Hãy xác định rõ chúng ta đang cần cái gì?

    *Nếu là thao tác với các số kiểu dec, oc, hex thì chú ý điều này:
    - Decimal hệ 10 (cái này bình thường)
    - Octal hệ 8: các số bắt đầu bởi số 0, vd: 072, 012
    - Hexadecimal hệ 16: các số bắt đầu bởi 0x, vd: 0xDF,..
    Các thao tác tính toán máy sẽ tự hiểu và tính toán bình thường.

    *Nếu để biểu diễn một số thuộc kiểu gì đó dưới dạng một số hệ nào đó: ví dụ bạn nhập vào một số nguyên giờ muốn biểu diễn nó lên màn hình.
    - Định dạng hệ 10 sử dụng %d
    - Định dạng hệ 8 sử dụng %o
    - Định dạng hệ 16 sử dụng %x (hoặc X để viết hoa các chữ cái)

    *Nếu muốn hiểu các số của ta dưới dạng một chuỗi, nhập xuất hay biểu diễn nó như vậy, vd kiểu nhị phân thì không có định dạng sẵn, ta phải dùng chuỗi. Với kiểu này sẽ nảy sinh các bài toán như code đầu tiên, hoặc các bài chuyển hệ nhị phân mà các đã hoặc sẽ phải làm.

    Không cần tạo quá nhiều box để bàn một vấn đề, các bạn hãy đưa ra thắc mắc để thảo luận luôn tại đây. Hãy tự code ví dụ để thấy đúng hoặc sai.

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