Две программистские задачи
Nov. 6th, 2007 11:25 amДаны две переменные data и mask одного и того же целочисленного типа без знака.
1. Напишите выражение, пригодное для операндов любой разрядности, значение которого равно значению бита в data, соответствующего младшему установленному биту в mask, например:
2. Напишите выражение, пригодное для операндов любой разрядности, значение которого равно значению бита в data, соответствующего старшему установленному биту в mask, например:
Если mask равно нулю, значение выражения должно быть равно нулю.
Перед оставлением комментария рекомендую тестировать ваши варианты.
1. Напишите выражение, пригодное для операндов любой разрядности, значение которого равно значению бита в data, соответствующего младшему установленному биту в mask, например:
data = 1010101111000101
mask = 1000110101001010
| || | | | |
1 10 1 1 0 0 -> 0
2. Напишите выражение, пригодное для операндов любой разрядности, значение которого равно значению бита в data, соответствующего старшему установленному биту в mask, например:
data = 1010110101001010
mask = 0010101111000101
| | |||| | |
1 <- 1 1 0101 0 0
Если mask равно нулю, значение выражения должно быть равно нулю.
Перед оставлением комментария рекомендую тестировать ваши варианты.