Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / перевод чисел из одной системы в другую / 12 сообщений из 12, страница 1 из 1
10.01.2010, 15:24
    #36402360
555irina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
Здравствуйте!
ПОМОГИТЕ ПОЖАЛУЙСТА...возникли проблемы с написанием кода для перевода чисел из одной системы в другую "Перевод из системы по основанию 8 в систему
по основанию 4".
алгоритм:
задаём строковый массив из восьми строк для хранения двоичных кодов восьмиричных чисел (000, 001 и т.д) и массив
для хранения кодов четверичных чисел (из 4 элементов - 00, 01, 10, 11).
Выделяем каждую цифру восьмиричного числа, заменяем её двоичным кодом, вписываем всё это в строку, дописываем
при необходимости 0 впереди, чтобы получилось чётное количество символов, затем проходим по строке и каждую пару
символов заменяем четверичным числом.

Private Sub Command1_Click()
Dim str1(8) As String
Dim str2(4) As String
str1 = "000,001,010,011,100,101,110,111"
str2 = "00,01,10,11"
If....
........................................

End Sub
или этот код совсем не правильный?
...
Рейтинг: 0 / 0
10.01.2010, 16:50
    #36402448
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
555irina
Выделяем каждую цифру восьмиричного числа, заменяем её двоичным кодом, вписываем всё это в строку, дописываем при необходимости 0 впереди, чтобы получилось чётное количество символов, затем проходим по строке и каждую пару символов заменяем четверичным числом.

Хоть и не универсальный алгоритм (невозможно легким движением руки переделать, скажем, по основанию 5), но работать будет.

555irina
Private Sub Command1_Click()
Dim str1(8) As String
Dim str2(4) As String
str1 = "000,001,010,011,100,101,110,111"
str2 = "00,01,10,11"

Код: plaintext
1.
Dim str1 As Variant
str1 = Array("000", "001", "010", "011", "100", "101", "110", "111")
...
Рейтинг: 0 / 0
10.01.2010, 23:34
    #36402734
yanyariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
Shocker.Pro,

Прошу простить самоучку, но разве не так:
десятиричная система (по основанию 10) - 1234567890
восьмиричная (по основанию 8)12345678
по основанию 4 - 1234
????
...
Рейтинг: 0 / 0
10.01.2010, 23:37
    #36402736
yanyariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
yanyariy,

Не читайте то что ВЫШЕ, До чего же я невнимателен........
...
Рейтинг: 0 / 0
11.01.2010, 01:49
    #36402776
VipFedor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
Код: plaintext
1.
Dim str1 As Variant
str1 = Array("000", "001", "010", "011", "100", "101", "110", "111")


Какое это имеет отношение к строковому массиву?

555irina ,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'Если размерность массива не обязательно должна быть определена

Dim str1$()
str1$ = Split("000,001,010,011,100,101,110,111", ",")

'Если обязательно должна быть определена

Dim str2( 1  To  8 ) As String
str2( 1 ) = "000"
str2( 2 ) = "001"
str2( 3 ) = "010"
'... и так далее...
...
Рейтинг: 0 / 0
11.01.2010, 02:03
    #36402781
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
VipFedorКакое это имеет отношение к строковому массиву?

Код: plaintext
1.
2.
Dim str1 As Variant
str1 = Array("000", "001", "010", "011", "100", "101", "110", "111")
MsgBox TypeName(str1( 5 ))

еще вопросы?
...
Рейтинг: 0 / 0
11.01.2010, 02:30
    #36402791
VipFedor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
Variant - тип переменной(массива), который может держать изменяющиеся типы данных!!!
...
Рейтинг: 0 / 0
11.01.2010, 10:14
    #36403015
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
> Автор: VipFedor
> Variant - тип переменной(массива), который может держать изменяющиеся типы данных!!!

Не правильно! Variant - тип данных, который может содержать различные типы данных, а не изменяющиеся типы данных.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.01.2010, 17:25
    #36405912
VipFedor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
Игорь Горбонос ,

Dim a As Variant

a = "234"
MsgBox TypeName(a) 'String

a = a * 2
MsgBox TypeName(a) 'Double

a - тип переменной Variant, который может держать изменяющиеся типы данных (в моем случае String или Double)!!!

Shocker.Pro ,

Ваш пример работать будет. Но более корректно ЯВНО описывать переменную. Это ускорит процесс выполнения более сложной программы.
...
Рейтинг: 0 / 0
12.01.2010, 18:00
    #36406012
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
VipFedor
Dim a As Variant

a = "234"
MsgBox TypeName(a) 'String

a = a * 2
MsgBox TypeName(a) 'Double

a - тип переменной Variant, который может держать изменяющиеся типы данных (в моем случае String или Double)!!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim a As Variant
a = "234"
MsgBox TypeName(a) 'String
a = a *  2 
MsgBox TypeName(a) 'Double
a = Null
MsgBox TypeName(a) 'Null
а в третьем случае чё за тип оно "держит"?
...
Рейтинг: 0 / 0
12.01.2010, 18:18
    #36406051
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
> Автор: VipFedor
> который может держать изменяющиеся типы данных

Тип данных не может быть изменяющимся. А тип данных
Variant сделан для передачи разнотипных данных. И
ничего что вы используете функции, которые предназначены для
определения типа данных , который содержится в
переменной типа Variant?
И кстати
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim a As Variant
MsgBox TypeName(a) 'Empty
a = Null
MsgBox TypeName(a) 'Null

a = "фыв"
MsgBox TypeName(a) 'String

a = a *  2 
MsgBox TypeName(a) ' Type mismatch

Dim b( 1  To  3 ) As Variant
b( 1 ) =  123 
b( 2 ) = # 1 / 1 / 2010 #
b( 3 ) = "Привет"
MsgBox TypeName(b)
А что за типы Empty, Null и почему то моя строка не умножилась

Что-то не могу придумать как получить настоящий тип переменной, как в окне Locals колонка Type в которой показывается,
что основной тип переменной Variant и через слеш указан тип данных значения , содержащегося в переменной.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.01.2010, 18:35
    #36406079
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод чисел из одной системы в другую
VipFedorЭто ускорит процесс выполнения более сложной программы.Не всегда.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / перевод чисел из одной системы в другую / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]