9.6. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками #
Ð ÑÑом Ñазделе опиÑÑваÑÑÑÑ ÑÑнкÑии и опеÑаÑоÑÑ, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками, Ñо еÑÑÑ Ñ Ð´Ð°Ð½Ð½Ñми Ñипов bit и bit varying. (ХоÑÑ Ð² ÑÑиÑ
ÑаблиÑаÑ
ÑпоминаеÑÑÑ ÑолÑко Ñип bit, Ñ Ð½Ð¸Ð¼ полноÑÑÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð·Ð°Ð¼ÐµÐ½Ñем Ñип bit varying.) ÐÐ»Ñ Ð±Ð¸ÑовÑÑ
ÑÑÑок поддеÑживаÑÑÑÑ Ð¾Ð±ÑÑнÑе опеÑаÑоÑÑ ÑÑавнениÑ, показаннÑе в ТаблиÑе 9.1, а Ñакже опеÑаÑоÑÑ, пÑиведÑннÑе в ТаблиÑе 9.14.
ТаблиÑа 9.14. ÐпеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками
ÐпеÑаÑÐ¾Ñ ÐпиÑание ÐÑимеÑ(Ñ) |
|---|
ÐонкаÑенаÑиÑ
|
ÐиÑовое Ð (опеÑÐ°Ð½Ð´Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ длинÑ)
|
ÐиÑовое ÐÐÐ (опеÑÐ°Ð½Ð´Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ длинÑ)
|
ÐиÑовое иÑклÑÑаÑÑее ÐÐÐ (опеÑÐ°Ð½Ð´Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ длинÑ)
|
ÐиÑовое ÐÐ
|
ÐиÑовÑй Ñдвиг влево (Ñ ÑÐ¾Ñ Ñанением Ð´Ð»Ð¸Ð½Ñ ÑÑÑоки)
|
ÐиÑовÑй Ñдвиг впÑаво (Ñ ÑÐ¾Ñ Ñанением Ð´Ð»Ð¸Ð½Ñ ÑÑÑоки)
|
ÐекоÑоÑÑе ÑÑнкÑии, ÑабоÑаÑÑие Ñ Ð´Ð²Ð¾Ð¸ÑнÑми ÑÑÑоками, Ñакже ÑабоÑаÑÑ Ð¸ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками, как показано в ТаблиÑе 9.15.
ТаблиÑа 9.15. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками
ÐÑоме Ñого, ÑелÑе знаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑеобÑазоваÑÑ Ð² Ñип bit и обÑаÑно. ÐÑиведение Ñелого к ÑÐ¸Ð¿Ñ bit(n) заклÑÑаеÑÑÑ Ð² копиÑовании в ÑÑо знаÑение пÑавÑÑ
n биÑ. Ðогда Ñелое пÑиводиÑÑÑ Ðº биÑовой ÑÑÑоке, имеÑÑей Ð´Ð»Ð¸Ð½Ñ Ð±Ð¾Ð»ÑÑе, Ñем ÑÐ°Ð·Ð¼ÐµÑ ÑÑого Ñелого, ÑезÑлÑÑÐ°Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑеÑÑÑ Ñлева знаком. ÐекоÑоÑÑе пÑимеÑÑ:
44::bit(10) 0000101100 44::bit(3) 100 cast(-44 as bit(12)) 111111010100 '1110'::bit(4)::integer 14
ÐамеÑÑÑе, ÑÑо пÑиведение к ÑÐ¸Ð¿Ñ Â«bit» без Ð´Ð»Ð¸Ð½Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð·Ð½Ð°ÑаÑÑ Ð¿Ñиведение к bit(1) и в ÑезÑлÑÑаÑе бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑен ÑолÑко один ÑамÑй младÑий Ð±Ð¸Ñ ÑиÑла.