странно себя ведёт or

Тема в разделе "LANGS.C", создана пользователем vladqq, 15 авг 2009.

  1. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    хай всем

    столкнулся с такой странной хренью
    компилер VisualStudio 2008 SP1

    код:

    func(unsigned char c);
    ....
    func((bit/8) | (segidx<<2))

    bit=32, segidx=5
    по идее вышепоказанная func при вызове с вышеприведёнными параметрами должна получать 0x18.
    но получает она 0x14. если or заменить на +, то получает 0x18 как и надо.

    кто знает в чём дело?
     
  2. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    всем пардон, я тупанул :)
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    1 or 1 = 1 :)
     
  4. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    да чёт у меня в башке вертелось что 32/8 = 3 :)