Thông báo

Collapse
No announcement yet.

Hỏi về cách dịch 1 biến 16 bit

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

  • Hỏi về cách dịch 1 biến 16 bit

    Mình đang cần dịch 1 biến 16 bit .vd:
    a=0x0123;//trước khi dịch a=0000/0001/0010/0011)
    a=a<<1;//sau khi dịch:a=0000/0010/0100/0110
    nhưng khi mình thử trong keil c thì thấy nó không đúng,nó chỉ dich 8 bit cuối thôi:0x23,còn 8 bit đầu nó không dịch
    bạn nào có thuật toán cho nó dich lúc cả 16 bit chỉ cho mình với
    thanks!!

  • #2
    bạn đùa à? dịch bình thường chứ lại, bạn cứ thử khai báo 1 biến int hoặc unsigned
    Code:
    int example=0x0123
    //sau đó 
    example<<=1;
    //xem có phải không, chứ nếu bạn dùng biến char thì đâu có chứa nổi 16bit?
    //còn nếu không thì làm như sau
    typedef union
    {
       struct{
        char b0, b1
       }x;
       int cdata;
    }_16bit_;
    
    _16bit_ abc;
    
    abc.cdata=0x1234;
    abc.cdata<<=1;
    // hoặc
    abc.x.b0<<=1;
    abc.x.b1<<=1;
    if(CY)
      abc.x.b0|=1;

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X