Подумайте, что значит «четный» и «нечетный» в терминах «бит».Поскольку двоичные целочисленные данные хранятся с битами, указывающими кратные 2, бит самого младшего порядка будет соответствовать 2 0 , что, конечно, равно 1, тогда как все остальные другие биты будут соответствоватькратно 2 (2 1 = 2, 2 2 = 4 и т. д.).Благодарность ASCII art:
NNNNNNNN
||||||||
|||||||+−− bit 0, value = 1 (2<sup>0</sup>)
||||||+−−− bit 1, value = 2 (2<sup>1</sup>)
|||||+−−−− bit 2, value = 4 (2<sup>2</sup>)
||||+−−−−− bit 3, value = 8 (2<sup>3</sup>)
|||+−−−−−− bit 4, value = 16 (2<sup>4</sup>)
||+−−−−−−− bit 5, value = 32 (2<sup>5</sup>)
|+−−−−−−−− bit 6, value = 64 (2<sup>6</sup>)
+−−−−−−−−− bit 7 (highest order bit), value = 128 (2<sup>7</sup>) for unsigned numbers,
value = -128 (-2<sup>7</sup>) for signed numbers (2's complement)
Я показал только 8 бит там, но вы поняли.
Таким образом, вы можете определить, является ли целое число четным или нечетным, глядя только намладший бит: если он установлен, число нечетное.Если нет, то даже.Вы не заботитесь о других битах, потому что все они обозначают кратные 2, и поэтому они не могут сделать значение нечетным.
Способ , который вы смотрите на этот бит, заключается в использованииоператор AND вашего языка.В C и многих других языках, синтаксически полученных из B (да, B), этот оператор равен &
.В бейсиках это обычно And
.Вы берете свое целое число, И это с 1 (который является числом только с установленным битом самого низкого порядка), и если результат не равен 0, бит был установлен.
Я намеренно не на самом деле даю код здесь, не только потому, что я не знаю, какой язык вы используете, но и потому, что вы отметили вопрос «домашнее задание».: -)