true и побитовое И (&)

 
Есть вот такая строка:
Print(true & 8);
Результат будет - 0.
Почему так происходит?
Неужели true воспринимается как знаковая 1 размером один бит?
Или я чего-то не догоняю?
 

true - это 0001

8    - это 1000

0001 & 1000 = 0000 - а что ожидалось?  

(убрал 0x) 

 
Ну... все правильно.
 
A100:

true - это 0x0001

8    - это 0x1000

0x0001 & 0x1000 = 0x0000 - а что ожидалось?  


а если точнее, то
8 - это 0x0008 или 0b1000 но не в MQL
 
negre:
а если точнее, то
8 - это 0x0008 или 0b1000 но не в MQL

Я много преподавал, в т.ч. MQL4-5 и всегда говорил ребятам, - ну наберите вы 3-4 строчки, сделайте скрипт, сразу все станет же ясно!! Но нет, упоротые пишут в скайп, в форумы, ждут днями ответов на вопросы, решаемые зха 3 мин..... так ведь интереснее))

Текст проверки, тупо вставил 2 строчки в один свой скрипт

void OnStart()
{
    Print("int=", IntegerToString((int)true));
    return;
/// далее неважно, мои гипер-супер-секреты))
2015.03.24 00:12:07.409 Script TestCommonFile GBPUSD,H4: removed
2015.03.24 00:12:07.409 TestCommonFile GBPUSD,H4: uninit reason 0
2015.03.24 00:12:07.409 TestCommonFile GBPUSD,H4: int=1
2015.03.24 00:12:07.409 TestCommonFile GBPUSD,H4: initialized
2015.03.24 00:12:07.409 Script Tests\TestCommonFile GBPUSD,H4: loaded successfully

 
Kлемануло, 
8 воспринимал чего-то как 111  (что есть 7)
и смотрел на true & 8 не в понимании, какого в результате будет 0

А как увидел с первого же комментария, что 8 это 100  (то подумал на себя нехорошим словом).
Спасибо, извините что убил время.