Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
renzot
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 1
#1

Разделение числа на отдельные цифры - VBA

26.04.2018, 21:50. Просмотров 156. Ответов 4
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста. Делаю калькулятор для систем счисления,застрял на моменте перевода чисел из 11-16 в 10. Мне нужно разделить полученное число на отдельные цифры(и/или буквы), но это число в 16-ричной системе, а единственный вариант решения не принимает буквы, и перестает считать. Вот кусочек программы, которую мне удалось создать
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub CommandButton36_Click()
Label8 = "16"
i = StrReverse(Val(TextBox16.Text))
a = Mid(i, 1, 1)
b = Mid(i, 2, 1)
c = Mid(i, 3, 1)
d = Mid(i, 4, 1)
e = Mid(i, 5, 1)
f = Mid(i, 6, 1)
g = Mid(i, 7, 1)
h = Mid(i, 8, 1)
i = Mid(i, 9, 1)
j = Mid(i, 10, 1)
z = Val(j)
v = Val(i)
y = Val(h)
k = Val(g)
l = Val(f)
m = Val(e)
n = Val(d)
o = Val(c)
p = Val(b)
q = Val(a)
r = 16
x = (z * r ^ 9) + (v * r ^ 8) + (y * r ^ 7) + (k * r ^ 6) + (l * r ^ 5) + (m * r ^ 4) + (n * r ^ 3) + (o * r ^ 2) + (p * r ^ 1) + (q * r ^ 0)
Label4 = x
End Sub
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2018, 21:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разделение числа на отдельные цифры (VBA):

Разделение числа на отдельные цифры - VBA
Привет! Я начинающий программист, передо мной стоит задача: например число 653 надо присвоить к 3 переменным по 1 цифре, то есть чтобы было...

Разделение числа на отдельные цифры - C++
int a, cout<<"Введите пятизначное число: "; cin>>a; cout<<"1я цифра"<<(a/10000)<<"\n"; cout<<"2я цифра"<<(a/1000)%10<<"\n"; ...

Разделение строки на отдельные слова [С++] - C++
Надо разделить строку на отдельные слова. Использовать strtok() нельзя.

Разделение программы на отдельные модули - Delphi
Помогите пожалуйста разобраться. Пишу скажем так большой калькулятор. Хочу сделать такую вещь. В самой программе есть поле edit для...

Разделение TCP потока на отдельные пакеты - C#
получаю данные так: Socket lsSock; byte data = new byte; lsSock.Recieve(data); данные - это пакеты где первые 2 байта - размер...

Разделение предложения на отдельные слова и сортировку их в алфавитном порядке - Pascal ABC
Я делаю лабораторную на разделение предложения на отдельные слова и сортировку их в алфавитном порядке. Вот код: program main; type...

4
Pro_grammer
Модератор
6127 / 2205 / 410
Регистрация: 24.04.2011
Сообщений: 3,853
Записей в блоге: 10
27.04.2018, 06:29 #2
Жутко выглядит ваш кусочек кода.
Добрый совет - почитайте про циклы For-Next, про массивы. Это здорово помогает.
Если вам просто код нужен, без забивания головы знаниями, то смотрите похожие темы
Как сделать калькулятор для переводаиз одной системы счисления в другую?
2
Остап Бонд
563 / 364 / 166
Регистрация: 17.08.2017
Сообщений: 894
27.04.2018, 06:50 #3
Перевод из двоичной системы счисления в десятичную
0
Burk
403 / 285 / 79
Регистрация: 11.07.2014
Сообщений: 988
27.04.2018, 08:01 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
renzot, можно попроще. сейчас строка Osn записана до шестнадцатиричной системы, можно продолжить.
параметр Os от 2 до 16

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Function DesToNewOsn(X As Integer, Os As Integer) As String
'из десятичной в новое основание
'X - десятичное число, Os - новое основание
Dim Osn As String
  Osn = "0123456789ABCDEF"
  If (X < Os) Then
    DesToNewOsn = Mid(Osn, X + 1, 1)
  Else
    DesToNewOsn = DesToNewOsn(X \ Os, Os) & Mid(Osn, (X Mod Os) + 1, 1)
  End If
End Function
 
Sub proba()
MsgBox DesToNewOsn(222, 16)
End Sub
 
Function ToDes(X As String, Os As Integer) As String
'из другого основания в десятичную
'X - число как строка, Os - основание числа Х
Dim Osn As String, I As Integer, S As Long
  Osn = "0123456789ABCDEF": S = 0
  For I = 1 To Len(X)
    S = S + InStr(Osn, Mid(X, I, 1)) - 1
    If I <> Len(X) Then S = S * Os
  Next
  ToDes = S
End Function
 
Sub proba1()
MsgBox ToDes("DE", 16)
End Sub
1
Казанский
13824 / 5587 / 1414
Регистрация: 24.09.2011
Сообщений: 8,764
27.04.2018, 08:44 #5
Цитата Сообщение от renzot Посмотреть сообщение
Мне нужно разделить полученное число на отдельные цифры(и/или буквы)
Здесь хорошо порезвились в разделении числа на цифры Вычислить, чему равна сумма цифр числа
0
27.04.2018, 08:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2018, 08:44
Привет! Вот еще темы с ответами:

Разделение строки типа String на отдельные слова с разделяющим символом - C++
Подскажите пожалуйста, как строку с n-ым количеством слов разделённых символом точка запятой разделить и поместить предположим в массив

Разбиение числа на отдельные цифры - C (СИ)
#include &lt;stdio.h&gt; int main() { int num; printf ( &quot;Введите пожалуйста число: &quot; ); scanf ( &quot;%d&quot;, &amp;num); ...

Разложение большего числа на отдельные - C++
В общем суть такова Имеем в переменной, допустим в &quot;a&quot; число. Не зная какое там число, (оно присвоено в результате определенных операций)...

Преобразование строки в отдельные числа - C#
дана входная строка типа: 234 67 85 345 надо каждое число занести в массив


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru