Как вы представляете (десятичное) целое число 50 в двоичном формате? Сколько битов нужно «перевернуть», чтобы сделать заглавной букву «а» в нижнем регистре, представленную в ASC11? Как вы представляете (десятичное) целое число 50 в, о, «шестнадцатеричное», иначе известное как основание 16? Напомним, что десятичная дробь — это просто основание 10, а двоичная — просто основание 2. Сделайте вывод из этих базовых систем, как представить эту? Пожалуйста, ответьте мне на эти вопросы. ПОМОГИТЕ.
Двоичные цифры в десятичной системе
Ответы (2)
Чтобы помочь вам:
Двоичный код состоит только из 1 и 0.
Это может помочь вам понять двоичное преобразование
Десятичный 0-9
Шестнадцатеричный код — это 0-9, затем A-F (так что A будет представлять 10, B будет 11 и т. д. до F, равного 15)
Преобразование из десятичного числа в другое основание
Вот несколько советов для вас относительно преобразования в двоичный файл:
- Что такое
50 mod 2
? Как насчет25 mod 2
, а затем12 mod 2
? Каковы ваши результаты, если вы продолжите это? - Что возвращает любое число
mod 2
(всегда) в качестве результата? -1
или0
- Осознаете ли вы какие-либо закономерности? - В результате вы получаете перевернутое двоичное число
Тестовый случай 50:
50 mod 2 = 0 - 6th digit
25 mod 2 = 1 - 5th digit
12 mod 2 = 0 - 4th digit
6 mod 2 = 0 - 3rd digit
3 mod 2 = 1 - 2nd digit
1 mod 2 = 1 - 1st digit
Остатки объединенных и реверсивных делений: 110010
, что соответствует 50
в двоичном формате.
Можно ли это также преобразовать в другие базы? - Да, как мы видим при попытке преобразовать 50
в шестнадцатеричное:
50 mod 16 = 2 - 2nd digit
3 mod 16 = 3 - 1st digit
Остатки, снова объединенные и перевернутые, равны 32
, что удобно равно 50
в шестнадцатеричном формате.
В общем, мы можем сказать, что для преобразования числа в произвольное основание вы должны взять остаток числа и основание, а затем разделить число на основание и сделать то же самое снова. В программе это будет выглядеть примерно так:
while the number is greater 0 do:
result = (number mod base) + result;
number = number div base;
Преобразование из любого основания в десятичное
Как преобразовать число из произвольного основания в основание 10? Сначала давайте сделаем тестовый пример с двоичным файлом. Возьмем 50
из предыдущего примера: 110010
Метод преобразования из двоичного числа заключается в умножении каждой цифры с основанием на степень ее положения в числе и сложении результата. Нумерация позиций начинается с 0
младшей значащей цифры. Тогда наш предыдущий номер будет выглядеть примерно так:
1 *2^5 + 1 *2^4 + 0 *2^3 + 0 *2^2 + 1 *2^1 + 0 *2^0
Что упрощает до:
32 + 16 + 2 = 50
Он также работает с любой другой базой, например, с нашей 32
из предыдущего примера:
3 *16^1 + 2*16^0 = 48 + 2 = 50
В программе это будет выглядеть примерно так:
from end of number to beginning do:
result = result + digit * (base ^ position)