Системы счисления.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Системы счисления.

Сообщение Mleha » 20.10.2004 (Ср) 16:11

Как перевести число из десятичной системы счисления в любую другую на VB? Алгоритм я
знаю, но ничего не получается. Помогите пожалуйста?!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.10.2004 (Ср) 16:18

А какой алгоритм ты знаешь?
Я делал конвертилку из любой в любую (с базой от 1 до 255), ничего сложного не было.
Lasciate ogni speranza, voi ch'entrate.

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 20.10.2004 (Ср) 16:26

Берешь число, делишь его на основание нужной системы, смотришь результат. От того, что было отнимаешь полученное целое число, а остаток опять делишь. И так пока результат не будет меньше делителя. В конце все результаты вычитания(вместе с последним результатом деления) записываешь справа на лево. Ответ готов!

ta_gena
Бывалый
Бывалый
 
Сообщения: 264
Зарегистрирован: 30.10.2002 (Ср) 12:18
Откуда: Russia

Сообщение ta_gena » 20.10.2004 (Ср) 16:39

Берешь число, делишь его на основание нужной системы, смотришь результат. От того, что было отнимаешь полученное целое число, а остаток опять делишь. И так пока результат не будет меньше делителя. В конце все результаты вычитания(вместе с последним результатом деления) записываешь справа на лево. Ответ готов!


- берешь число делишь его на основание нужной системы
- от остатка деления берешь целую часть и умножаешь на основание
- и только теперь, полученный результат отнимаешь от числа
И так пока результат не будет меньше делителя

Надо только создать символику для чисел больших 9.
Например A, B, ....

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 20.10.2004 (Ср) 16:49

Alibek, можешь пример скинуть на LKS@YANDEX.RU

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.10.2004 (Ср) 17:01

Тебе же уже написали, как надо правильно?
Lasciate ogni speranza, voi ch'entrate.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 11.12.2006 (Пн) 18:24

Мне сложно понять...
Можно примером?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 18:36

А из системы с произвольным основанием как перевести обратно в десятичную?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

August
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 25.08.2006 (Пт) 10:48
Откуда: C сибири

Сообщение August » 11.12.2006 (Пн) 18:38

Число 12 в двоичную

берем число 12 делим на 2 получаем 6 отстатка нет пишем 0
берем число 6 делим на 2 получаем 3 отстатка нет пишем 0
берем число 3 делим на 2 получаем 1 отстаток 1 пишем 1
берем число 1 делим на 2 получаем 0 отстаток 1 пишем 1

имеем 0011 переворачиваем 1100

так же и с любой другой системой

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2006 (Пн) 18:38

ПрямойТрёхмерный-ВизуальныйОсновной-Денис
Точно также :x

PS. Почему VB это не PHP. Там есть встроенная функция для таких дел.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.12.2006 (Пн) 18:45

111100102 = 0*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 + 1*2^5 + 1*2^6 + 1*2^7
2 = "0, 1"

12610 = 6*10^0 + 2*10^1 + 1*10^2
10 = "0, 1, 2, ..., 9"

August
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 25.08.2006 (Пт) 10:48
Откуда: C сибири

Сообщение August » 11.12.2006 (Пн) 18:46

VB_D3D_Денис писал(а):А из системы с произвольным основанием как перевести обратно в десятичную?


ребята, ды вы чего совсем задача 7 класс по информатике...все в поиск или в учебник...не стыдно?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 18:51

Хакер писал(а):Уважаемый Денис
Точно также :x

PS. Почему VB это не PHP. Там есть встроенная функция для таких дел.


Я тоже так думаю! :D :D :D
Однако, просьба уточнить, из 128-чной системы в 19-чную?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.12.2006 (Пн) 18:58

VB_D3D_Денис, ты над нами издеваешься?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 19:02

August
Стыдно. Очень стыдно. :oops: Но прет!!! :P
Ситуация такая, что учебника нету. И доставать влом. И негде. И в нете второй день смотрю - сплошная теория и ниодного примера.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 19:04

Amed
А вы?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2006 (Пн) 19:13

Во первых менять что то в тексте чужих постингов при их цитировнаии по крайней мере неприлично.

Во вторых я бы вам замечание выписал за последовательные постинги.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.12.2006 (Пн) 19:14

Таки я не издеваюсь. Разве сложно залезть в любой поисковик и немного поработать головой?

http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 0%B8%D1%8F

Пойми, что готового примера на блюдечке нигде не будет.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 19:23

Таки спасибо! :D
:lol:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2006 (Пн) 19:27

VB_D3D_Денис
Мне кажется у тебя смайлофилия. Поработай над собой.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 19:28

:idea:
А напишу ка я примерчик и выложу здесь.
Чтоб другие копировали и радовались...
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.12.2006 (Пн) 19:41

Код для перевода из любой системы в любую выложен на этом форуме (как и в сотнях других мест). Ищущий да обрящет.
И я сильно сомневаюсь, что ты напишешь лучше.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 21:45

Конечно, лучше я не напишу.
Вот код для перевода из любой системы счисления в любую:

=В связи с тем, что в коде обнаружились ошибки, он был переработан и теперь доступен для скачивания=

Пускай процент обрящущих и за мной будет.
Вложения
СистСЧ.zip
Пример кода
(13.76 Кб) Скачиваний: 291
Последний раз редактировалось Денис 13.12.2006 (Ср) 12:51, всего редактировалось 3 раз(а).
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 21:47

И шоб без инсиннуаций.
Я использовал алгоритм ta gena
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.12.2006 (Пн) 22:07

VB_D3D_Денис, ты правда считаешь, что это код?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 22:12

GSerg
:? Он довольно сильно похож на пример, показанный по ссылке Ameda. Не спорю. Но ссылку я смотрел только после того, как запостил готовый вариант...
:cry:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 22:48

Так, продолжим 8) :
Код: Выделить всё
Function DecToBin(Value As Long) As String

    Dim i, Ret
   
    If Value = 0 Then Value = 1
   
    Do While Value <> 1
   
        If Value / 2 = Value \ 2 Then
            Ret = "0" + Ret
            Value = Value / 2
        Else
            Ret = "1" + Ret
            Value = Value \ 2
        End If
       
    Loop
    If Value = 1 Then Ret = "1" + Ret
   
    Bin = Ret
   
End Function

... и еще :!: :
Код: Выделить всё
Function BinToDec(Number As String) As Long
   
    Dim i, j, S
   
    For i = Len(BinNumber) To 1 Step -1
       
        S = S + (Val(Mid(BinNumber, i, 1)) * (2 ^ j))
        j = j + 1
       
    Next
   
    Dec = S
   
End Function

Код? :wink:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2006 (Пн) 23:01

VB_D3D_Денис
Человек, который выкладывает код с Variant-переменными, не достоин уважения.

А когда он писользует Mid без $ - тем более. (Интересно, почему на него GSerg по этому поводу не наезжает? :wink: )
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 23:24

Хакер
Это не я пользую Варианты, это те, кто будут пользовать этот мой код, получат медленный и неоптимизированный код. Если не подумают над ним... Мне кажется для примера и так сойдет.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 23:28

Писать Mid с долларом???
Зачем. Ну я понимаю, вы тут профи старой школы, кто на Суре сидел, кто на Спектруме... Но функция Mid (заметь, не Mid$) работает со строками. И возвращает строки. Так что печатать признак строки после нее - бес-по-лез-но.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Old_Maple и гости: 5

    TopList