Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2015 19:23:11

sashaan
Зарегистрирован: 2015-09-30
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

как сделать программу чтобы когда вводишь число вышло все четыре системы (hex,dec,bin,oct)
помогите пожалуйста очень срочно надо

Отредактировано sashaan (Сен. 30, 2015 19:24:47)

Прикреплённый файлы:
attachment s-ugs35UCLE.jpg (7,4 KБ)

Офлайн

#2 Сен. 30, 2015 19:26:54

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

sashaan
очень срочно надо
Что за срочность то такая, сессия еще не скоро же.



Офлайн

#3 Сен. 30, 2015 20:40:28

sashaan
Зарегистрирован: 2015-09-30
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

Это дз крайний срок пятница

Офлайн

#4 Сен. 30, 2015 21:19:17

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

Посмотрите здесь или здесь(bin, hex, oct) - не заметил инфу в шапке/
А вообще от вас видимо хотят получить следующее:

>>> def f(x):
... s = ''
... while x > 0:
... z = str(x % 2)
... s = z + s
... x = int(x / 2)
... return s
...
>>> f(8)
'1000'
Это пример для двоичной системы счисления для питона версии 2.х. Этот код не будет переводить числа < 0. Перевод в 8ричную систему можете сделать аналогично. Над переводом в 16ричную подумайте сами.

Отредактировано botinag (Сен. 30, 2015 21:42:02)

Офлайн

#5 Окт. 1, 2015 03:23:36

sashaan
Зарегистрирован: 2015-09-30
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

Спасибо

Офлайн

#6 Окт. 1, 2015 04:40:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

На картинке нужно переводить в обе стороны. Но системы счисления удобные.

Преобразование восьмеричного числа в двоичное и наоборот:

0 - 000 - 0
1 - 001 - 1
2 - 010 - 2
3 - 011 - 3
4 - 100 - 4
5 - 101 - 5
6 - 110 - 6
7 - 111 - 7

Преобразование 16-ричного числа в двоичное и наоборот:
0 - 0000 - 0
1 - 0001 - 1
2 - 0010 - 2
3 - 0011 - 3
4 - 0100 - 4
5 - 0101 - 5
6 - 0110 - 6
7 - 0111 - 7
8 - 1000 - 8
9 - 1001 - 9
A - 1010 - A
B - 1011 - B
C - 1100 - C
D - 1101 - D
E - 1110 - E
F - 1111 - F

42 (8) = 100 010 (2)
AB (16) = 1010 1011 (2)

1010101 (2) = 001 010 101 (2) = 125 (8)
1010101 (2) = 0101 0101 (2) = 55 (16)

Введённое число переводишь в двоичную, а двоичное переводишь в конечную.
Десятичное число переводится в двоичное путём деления на 2. А двоичное в десятичное - через умножение на 2.



Отредактировано py.user.next (Окт. 1, 2015 04:45:20)

Офлайн

#7 Окт. 1, 2015 10:32:56

sashaan
Зарегистрирован: 2015-09-30
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

Спасибо,но мне нужно код ,делать надо через массив

Офлайн

#8 Окт. 1, 2015 15:55:34

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

sashaan
но мне нужно код ,делать надо через массив
sashaan
Это дз крайний срок пятница
Вам же написали, вы хоть бы подумали как это реализовать.

Не желаете думать, ну тогда вот ваш код.

Офлайн

#9 Окт. 1, 2015 20:42:44

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

как сделать перевод из одной системы в другую не используя oct,dec,hex,bin

Для sashaan
Перевод неотрицательных целых чисел из dec в hex можно сделать так:

n = int(input ("Введите число: "))
d = {0:'0', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7', 8:'8', 9:'9',
     10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F'}
q = n
result = ""
while q != 0:
    r = q % 16
    q = q // 16
    result += d[r]
result = ''.join(reversed(result))
print("%d => 0x%s" % (n, result))
Перевод dec => oct и dec => bin еще проще. Оставляю это вам для самостоятельной работы.

Отредактировано old_monty (Окт. 1, 2015 20:51:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version