Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Giải thích hộ mấy dòng lệnh này với

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    Sơn La
    Bài viết
    11

    Mặc định Giải thích hộ mấy dòng lệnh này với

    Tôi có đoạn code trong c như sau:
    #define SGN_MASK 0x00000080
    #define CLR_SGN_MASK 0x0000007F
    #define smptoc(smp) (((smp) & SGN_MASK) ? ((smp) & CLR_SGN_MASK) : (-(0x80 - (smp))))
    #define ctosmp(c) (((c) > 0) ? ((c) | SGN_MASK):(0x80-(-c)))}
    Nhờ các bác xem hộ xem nó làm gì, tôi chưa từng gặp qua kiểu này bao giờ. tại sao lại phải định nghĩa các giá trị ở hệ thập lục phân

    Thank các bác nhiều
    Đã được chỉnh sửa lần cuối bởi timtrithuc : 24-10-2007 lúc 10:23 AM. Lý do: Sửa lại code

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Cậu lấy cái code này ở đâu vậy?
    Cái này đúng kiểu: Học trò mang một cái bánh xe đến nhà thầy giáo cơ khí hỏi: "Bánh xe này là bánh xe của máy gì hả thầy?" Thầy chắc trợn mắt vì bó tay với học trò!

    Theo Dr nhận thấy code trên dùng trong việc xử lý phím gì đó:

    0x00000080: mã phím Back space thì phải.
    0x0000007F: mã phím DEL.

    Phải cụ thể, cụ tỉ ra, chứ giờ mà vẫn còn "cụ hồ" thì bó tay luôn.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    Sơn La
    Bài viết
    11

    Hic . Anh Admin nói thế thì em chịu rùi. Em đây đi nhặt rác nhặt được cái bánh xe, không biết là bánh của loại xe gì thì mới mang đến chỗ người có kinh nghiệm để hỏi, xem họ có biết ko. Mang đến họ lại bảo "Mày phải cho tao biết mày tháo cái bánh xe này ở cái máy nào, nó dùng để làm gì, thì tao mới cho mày biết nó là bánh xe gì chớ" thì em mang đi hỏi làm chi. Kiểu này thì học trò cũng "pó chiếu" luôn, rùi tự lăn ra bãi tha ma. cụ "Thể", cụ "Tì" thì em ko quen cụ nào tên như thế, em ở VN nên tất nhiên là biết cụ "Hồ" rùi, còn mấy thằng Tây ko biết nó có biết mấy cụ này ko nhỉ ? . Dù sao cũng cám ơn Dr đã nhiệt tình trả lời.

    Nhưng theo tôi biết hình như đoạn mã trên định nghĩa để xử lý dấu trừ thì phải, giá trị 0x80 là giá trị max thì phải. Do chưa gặp bao giờ mà cũng ko thấy tài liệu nào nói đến lên post lên đây hỏi mọi người xem có giúp được ko. Ko biết có phải như bác Dr nói ko nhỉ
    Đã được chỉnh sửa lần cuối bởi timtrithuc : 24-10-2007 lúc 03:15 PM. Lý do: Edit

  4. #4
    Ngày gia nhập
    02 2007
    Nơi ở
    TP.HCM - dưới cầu SG
    Bài viết
    12

    tại sao lại phải định nghĩa các giá trị ở hệ thập lục phân
    Theo mình nghĩ đó là do thói quen thao tác các số trên hệ 16 thôi. Đôi khi với cách nhìn đó, việc thực hiện các phép toán trên bit sẽ dễ dàng hơn.
    Mình nghĩ đoạn code trên là để kiểm tra xem 1 số có dấu hay ko. Cụ thể:
    +SGN_MASK = 1000000 ( hệ 2 ) ( có lẽ là viết tắt của SIGN_MASK - mặt nạ che - để biết 1 số 8 bit có dấu hay ko )
    +CLR_SGN_MASK = 01111111 ( hệ 2 ) có lẽ là viết tắt của CLEAR SIGN MASK - để xóa dấu của một số 8bit.
    +"#define smptoc(smp) (((smp) & SGN_MASK) ? ((smp) & CLR_SGN_MASK) : (-(0x80 - (smp)))) "
    là macro có nghĩa gần tương đương với
    Code:
    if( smp có dấu )
       smptoc(smp) thực hiện việc xóa dấu của smp đi;
    else
       smptoc(smp) = -(128-smp);
    +"#define ctosmp(c) (((c) > 0) ? ((c) | SGN_MASK):(0x80-(-c)))" hình như là đổi ngược lại ý trên ( ko dám chắc )
    Thân!
    Nơi nào khiến anh dừng bước, nơi đó có em.

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

  1. Lập trình C++ Giải thích từng dòng code này với.
    Gửi bởi hoasung01 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 24-05-2012, 04:13 PM
  2. Database Làm sao get data trong bảng dòng từng dòng theo số dòng i
    Gửi bởi theClassicMan27 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 26-04-2012, 01:17 AM
  3. Nên viết 1 dòng code dài trên 1 dòng hay trên nhiều dòng??
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 25-10-2010, 01:07 AM
  4. Bài tập C++ Các dòng lệnh C cơ bản. Giải thích cho em với?
    Gửi bởi prime trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-03-2010, 12:28 PM
  5. Có bạn nào hiểu dòng lệnh này không giải thích dùm mình với
    Gửi bởi hoangtiencdt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 03-09-2009, 03:49 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