0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 10
|
||||||
1 | ||||||
Программа, переводящая число из одной системы счисления в другую28.05.2014, 11:41. Показов 3209. Ответов 4
Метки нет Все метки)
(
Вопрос заключается в следующем. По условиям задачи, мне необходимо перевести число из двоичной системы счисления в десятичную. Я вроде знаю , как это делается, но оформление кода мне почему-то вообще непонятно
for (int r = 1; var > 0; r *= 2) { result += (var % 10) * r; var /= 10; } Можете пояснить, что тут что?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
28.05.2014, 11:41 | |
Ответы с готовыми решениями:
4
Необходима программа переводящая число в другую систему счисления Программа перевода из одной системы счисления в другую Программа перевода из одной системы счисления в другую Перевести число из одной системы счисления в другую |
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
|
||||||||||||||||
28.05.2014, 12:10 | 2 | |||||||||||||||
цикл до момента, когда введенное число будет равно 0
каждое следующее r в два раза больше предидущего
1
|
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 10
|
|
28.05.2014, 12:57 [ТС] | 3 |
kasan,
А можно на примере какого-нибудь числа это объяснить? Пожалуйста-пожалуйста)
0
|
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
|
|
28.05.2014, 13:17 | 4 |
bazzinga13,
возьмем 42, в двоичной системе это 101010 (такое число и вводим) теперь var = 101010 заходим в цикл ------------------ r=1 вычисляем (var%10)*r; var%10 будет 0, это выражение фактически говорит нам какая последняя цифра у нашего числа (сейчас это 0). 0*r будет 0. Прибавляем 0 к result. В result у нас пока 0. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=10101 ------------------ след. итерация, r=2 вычисляем (var%10)*r; var%10 будет 1 (последняя цифра числа var, помним, что наше var=10101) 1*r = 2. Прибавляем 2 к result. В result у нас 2. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=1010 ------------------ след. итерация, r=4 (по условию цикла каждое следующее r в два раза больше предидущего) вычисляем (var%10)*r; var%10 будет 0 (последняя цифра числа var, помним, что наше var=1010) 0*r = 0. Прибавляем 0 к result. В result у нас 2. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=101 ------------------ след. итерация, r=8 (по условию цикла каждое следующее r в два раза больше предидущего) вычисляем (var%10)*r; var%10 будет 1 (последняя цифра числа var, помним, что наше var=101) 1*r = 8. Прибавляем 8 к result. В result у нас 2+8=10. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=10 ------------------ след. итерация, r=16 (по условию цикла каждое следующее r в два раза больше предидущего) вычисляем (var%10)*r; var%10 будет 0 (последняя цифра числа var, помним, что наше var=10) 1*r = 0. Прибавляем 0 к result. В result у нас 10. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=1 ------------------ след. итерация, r=32 (по условию цикла каждое следующее r в два раза больше предидущего) вычисляем (var%10)*r; var%10 будет (последняя цифра числа var, помним, что наше var=1) 1*r = 32. Прибавляем 32 к result. В result у нас 10+32=42. var /= 10 деление числа на 10 без остатка, "отрезаем" последнюю цифру в числе. после этого действа var=0 ------------------ поскольку var=0 выходим из цикла (потому что не выполняется условие цикла var > 0) печатаем result
1
|
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 10
|
|
28.05.2014, 13:26 [ТС] | 5 |
kasan, Спасибо огромное за такой подробный ответ, теперь все понятно.
![]()
0
|
28.05.2014, 13:26 | |
Помогаю со студенческими работами здесь
5
Перевести число из одной системы счисления в другую
Программа по переводу чисел из одной системы счисления в другую
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |