Thursday, September 10, 2015

Перевод чисел из одной системы счисления в другую

Перевод из десятичной системы в любую другую. Перевод целых чисел

Целое десятичное число нужно поделить на основание новой системы счисления. Остаток от этого деления является самым младшим разрядом в новой записи числа. Результат деления вновь делится на основание. Остаток от этого деления будет следующим разрядом в новой записи числа, результат деления вновь делится на основание и т.д. до тех пор, пока в результате деления получится число, меньшее по величине, чем основание новой системы. Остаток этого последнего деления будет предпоследним разрядом в новой записи числа, а результат этого последнего деления - самым старшим разрядом в новой записи числа.

Проверка перевода осуществляется по формуле (11.2), так, как это показано ниже на примерах.

Пример. Перевести десятичное число 125 в двоичную, восьмеричную и шестнадцатеричную системы счисления. Проверить результаты по формуле (П11.2).

\arraycolsep=0.05em
\begin{array}{l@{\,}rl@{\,}rl@{\,}rl@{\,}rl@{\,}rl@{\,}rl@{\,}rl}
&_{-}125 &|2 &&&&&\\
\cline{3-4}
&124 &&_{-}62 &|2\\
\cline{2-2}\cline{5-6}
&1 & &62 &&_{-}31 &|2\\
\cline{4-4}\cline{7-8}
&&&0 & &30 &&_{-}15 &|2\\
\cline{6-6}\cline{9-10}
& &&  &&1 &&14 &&_{-}7 &|2\\
\cline{8-8}\cline{11-12}
&&&&&&&1&&6 &&_{-}3 &|2\\
\cline{10-10}\cline{13-14}
&&&&&&&&&1 &&2&&1\\
\cline{12-12}
&&&&&&&&&&&1\\
\end{array} \\

125_{10} = 1111101_2
\arraycolsep=0.05em
\begin{array}{rrrrrrrr}
_{-}&1&2&5&|8\\
 \cline{5-6}
    & &8& &_{-}&15&|8\\
\cline{2-3}\cline{7-7}
 &_{-}&4&5&    & 8& 1\\
\cline{6-6}
 &    &4&0&    & 7\\
\cline{3-4}
 &    & &5 
\end{array} \\

125_{10}=175_8
\arraycolsep=0.05em
\begin{array}{rrr}
_{-} & 125 & |16\\
 \cline{3-3}
 & 112 & 7\\
 \cline{2-2}
 & 13\\
\end{array} \\
125_{10} =  7D_{16}
a)б)в)

Friday, July 17, 2015

Комент на валидацию в перегрузке оператора

Может я умственно ущербен? Каким нечеловеческим, непостижимым, извращенным, нереальным, богомерзким способом ты предлагаешь мне реализовать валидацию на уровне перегруженного оператора << ? Как это вообще возможно? Как? Если я еще минут 15 об этом подумаю мне придется в Кащенко лечиться... Каким образом это вообще возможно, валидировать создание объекта, уже после его создания при помощи перегруженного оператора << ? При этом приватным методом объекта? Каким образом это программировать? А если даже это запрограммировать, то как потом жить? После такого архитектурного изыскания программирование потеряет смысл...