powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / перевод чисел из одной системы в другую
12 сообщений из 12, страница 1 из 1
перевод чисел из одной системы в другую
    #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
перевод чисел из одной системы в другую
    #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
перевод чисел из одной системы в другую
    #36402734
yanyariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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

Не читайте то что ВЫШЕ, До чего же я невнимателен........
...
Рейтинг: 0 / 0
перевод чисел из одной системы в другую
    #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
перевод чисел из одной системы в другую
    #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
перевод чисел из одной системы в другую
    #36402791
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Variant - тип переменной(массива), который может держать изменяющиеся типы данных!!!
...
Рейтинг: 0 / 0
перевод чисел из одной системы в другую
    #36403015
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: VipFedor
> Variant - тип переменной(массива), который может держать изменяющиеся типы данных!!!

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

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


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