Форум » Системы счисления » По задаче 14-318 » Ответить

По задаче 14-318

Поляков: Татьяна пишет:[quote] у меня снова вопрос. теперь по заданию 14((П. Волгин) Значение выражения 1644 · 1630 – (325 · (840 – 832) · (1617 – 324)) записали в системе счисления с основанием 16 Затем в шестнадцатеричной записи этого числа все цифры E заменили на 1, а цифру в разряде 4 удалили. Найдите количество единиц в шестнадцатеричной записи числа после изменения. Ответ запишите в десятичной системе счисления.). Что значит "а цифру в разряде 4 удалили"? укоротили число на порядок или выбросили, если она 1 или Е? Поясните пожалуйста.[/quote]Просто удалили 4-й разряд, укоротив число. Нумерация разрядов, как всегда, справа налево, начиная с 0.

Ответов - 3

Черношвец: Поляков тогда вот программа на ПАскале, ответ сходится но решение соответствует условию, если 1 или Е, то уменьшить счетчик на 1. если можно поясните на программе Ваше условие

Поляков: Черношвец пишет: ответ сходится Решение правильное. А что вас смущает?

Черношвец: {(П. Волгин) Значение выражения 16^44 · 16^30 – (32^5 · (8^40 – 8^32) · (16^17 – 32^4)) записали в системе счисления с основанием 16 Затем в шестнадцатеричной записи этого числа все цифры E заменили на 1, а цифру в разряде 4 удалили. Найдите количество единиц в шестнадцатеричной записи числа после изменения. Ответ запишите в десятичной системе счисления.} var a:biginteger; k,d:int64; begin a:=biginteger.Pow(16,44)*biginteger.Pow(16,30) -(biginteger.Pow(32,5)*((biginteger.Pow(8,40)-biginteger.Pow(8,32))*(biginteger.Pow(16,17)-biginteger.Pow(32,4)))); writeln((a mod (16*16*16*16)) div (16*16*16));{отладочная печать, проверяем является ли цифра в 4-ом разряде Е или 1} while a>0 do begin if (a mod 16=1) or (a mod 16=14) then k:=k+1; a:=a div 16; end; if (a mod (16*16*16*16) div (16*16*16)=14) or (a mod (16*16*16*16) div (16*16*16)=1) then k:=k-1; writeln(k); end.




полная версия страницы