Thông báo

Collapse
No announcement yet.

Đổi 1 số bất kỳ sang BCD, cộng 2 số BCD

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Đổi 1 số bất kỳ sang BCD, cộng 2 số BCD

    Đây là môn kiến trúc máy tính:

    Anh (Chị) nào có lòng tốt xin chỉ dùm em chương trình "đổi 1 số bất kỳ sang BCD. Công 2 số BCD". Viết bằng C hay Pascal càng tốt. Em rất cảm ơn, em không chuyên nên rất khó

  • #2
    Em giải thích thêm:

    Thập Phân BCD
    0 - 0000
    1 - 0001
    2 - 0010
    3 - 0011
    4 - 0100
    5 - 0101
    6 - 0110
    7 - 0111
    8 - 1000
    9 - 1001

    ví dụ:
    Ta nhập vào số bất kỳ là số 9 -> đổi thành 1001 (BCD)

    Tiếp theo nếu là cộng 2 số BCD (cái này mới phiền phức)

    ta lấy 25 + 5 =

    0010 0101
    + 0101
    = 0010 1010 ( * )

    kq: 2 1010

    Do 1010 không trong bảng trên nên ta cộng thêm sai số vào (số đó là số 6). Nếu như ở trên là 24+5 (thì ở bước này ta cộng thêm số 6).

    Lấy ( * ) cộng thêm số 6 vào

    0010 1010
    + 0110

    = 0010 0000
    = 20 (Đây là kết quả đúng)

    Comment


    • #3
      Không được sau các bạn

      Comment


      • #4
        Nguyên văn bởi autvcc Xem bài viết
        Em giải thích thêm:

        Thập Phân BCD
        0 - 0000
        1 - 0001
        2 - 0010
        3 - 0011
        4 - 0100
        5 - 0101
        6 - 0110
        7 - 0111
        8 - 1000
        9 - 1001

        ví dụ:
        Ta nhập vào số bất kỳ là số 9 -> đổi thành 1001 (BCD)

        Tiếp theo nếu là cộng 2 số BCD (cái này mới phiền phức)

        ta lấy 25 + 5 =

        0010 0101
        + 0101
        = 0010 1010 ( * )

        kq: 2 1010

        Do 1010 không trong bảng trên nên ta cộng thêm sai số vào (số đó là số 6). Nếu như ở trên là 24+5 (thì ở bước này ta cộng thêm số 6).

        Lấy ( * ) cộng thêm số 6 vào

        0010 1010
        + 0110

        = 0010 0000
        = 20 (Đây là kết quả đúng)
        chưa nhớ 1 .
        = 0011 0000
        = 30
        bcd - binary coded decimal - số thập phân được mã hóa nhị phân (từng chữ số của số thập phân).

        mà tại sao lại + 6 khi không có trong bảng ? có nguyên gì chứ?

        http://www.youtube.com/watch?v=SruKb...eature=related

        Comment


        • #5
          Bạn xem lại kỷ nội dung dùm mình nhé!

          Comment


          • #6
            Nguyên nhân đơn giản bởi vì khi thao tác với số BCD như là thao tác với số thập phân là cơ số 10 vậy.

            Nếu A+B > 10 thì nhớ sang hàng chục, do khi cộng BCD nó không tự nhớ nên phải tự cộng thêm 6 vào để cho nó nhớ sang thôi.

            Tại sao lại là 6:

            A+B = 10 + C ( A, B, C là số BCD). Giá trị 1 ở hàng chục tương đương với 16 nên cộng thêm 6 để cho nó tràn sang 4 bit trên thôi.

            (if A+B>10, A+B+6 = 16 + C = 1C(dạng BCD))

            Chúc bạn thành công.
            Technical sale at WT Microelectronics S'pore
            Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
            Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

            Comment


            • #7
              Nguyên văn bởi autvcc Xem bài viết
              Đây là môn kiến trúc máy tính:

              Anh (Chị) nào có lòng tốt xin chỉ dùm em chương trình "đổi 1 số bất kỳ sang BCD. Công 2 số BCD". Viết bằng C hay Pascal càng tốt. Em rất cảm ơn, em không chuyên nên rất khó

              clearly?
              ko nên dấu dốt vì sĩ diện (sd của em chỉ vài gram thôi)

              Comment


              • #8
                dùng asembly cộng 2 số BCD 4 chữ số thì sao ạ.help me!

                Comment

                Về tác giả

                Collapse

                autvcc Tìm hiểu thêm về autvcc

                Bài viết mới nhất

                Collapse

                Đang tải...
                X