Getchar дорівнює 0 або 1

Здрастуйте шановні форумчани.
Зараз спробую пояснити суть питання і з чого воно виникло.
І так, зСмені довелося зіткнутися в університеті. До того ж із програмуванням я сильно не морочився. Моїх знань вистачало наHTML, CSSі так всякі дрібниці. (короче зовсім не на програмування). Тепер же я навчаюСі пройшлося зіткнутися з деякими питаннями. В університеті ми вчимося за книгою"Керніган.Б та Річі.Д Програмування на С"Думаю багатьом ця книга відома. І так питання!
У розділі в якій розповідають проgetcharзгадується що при застосуванні змінна набуває значення0або1. А ось у яких випадках це відбувається ніхто нічого не говорить .
А в результаті дається завдання в якому просять перевірити, що виразgetchar () != EOFдорівнює1або0. Як результат не можу зрозуміти коли ж воно0і коли1.
Прошу не судити дуже суворо, у програмуванні я повний профан тому і прошу допомоги у опцтних світу цього

У C немає понять істина/брехня, натомість використовують 0 - брехня, будь-яке інше число - істина. Результат порівняння – істина (1) або брехня (0). Значить (getchar()!=EOF)==0, якщо наступний символ дорівнює EOF і 1, якщо не дорівнює.
Можна перетворити getchar()!=EOF на !(getchar()==EOF), може тобі так простіше зрозуміти.

У C немає понять істина/брехня, натомість використовують 0 - брехня, будь-яке інше число - істина. Результат порівняння – істина (1) або брехня (0). Значить (getchar()!=EOF)==0, якщо наступний символ дорівнює EOF і 1, якщо не дорівнює.
Можна перетворити getchar()!=EOF на !(getchar()==EOF), може тобі так простіше зрозуміти.
Велике дякую за відповідь, думав уженіхто не відповість.
Першу частину написаного розумів. А ось із другою ж все було гірше.
Але дивлячись на це з висоти поясненого вами розумію, що це найпростіша арифметика.
!=(позначає не рівно);==(позначає рівно) . Іншими словами ті самі0та1.
Ще раз величезне вам спасибі.

Модератор: поміняв 0 та 1 місцями, щоб новачки не плуталися


Взагалі, 0 і 1 і оператори порівняння це два різні поняття. Якщо другий виконує якусь дію, то перші є результатом цієї дії. Причому, позитивний результат не обов'язково 1. Він може бути будь-яким відмінним від нуля. До речі, компілятор MSVC попереджає про це при спробі використання результату булевої операції (це та, яка повертає true або false) у звичайній арифметиці.
Справа в тому, щоtrueіfalseце1і0. Я то знаю (і треба бути унікумом щоб цього не знати) але те, що заплутало, це те, що вони прив'язували це зgetchar(звідси до речі і назва теми, якщо ви помітили). І ось тут якраз я і почав плутатися. Звідти й виникло питання коли він0а коли1? Бо особливо все це ніхто не пояснював.
Найлегше вказати на когось пальцем і сказати"дебіл". Просто тема для мене нова і намагаюся нормально в ній розібратися. Зауваж, багато хто б не звернув уваги і пішов би далі. Я ж вирішив розібратися, тому й поставив це питання.
Що ж доMSVC.Visual studioне використовую оскільки працюю безпосередньо наlinux. І компілюю за допомогоюGCC. В принципі мене він влаштовує і звіти виводить цілком нормальні. Просто як я вже сказавя в цій справі новачок і деякі речі поки не розумію.