Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2010, 00:15   #1
maxcoder_1991
Новичок
Джуниор
 
Аватар для maxcoder_1991
 
Регистрация: 03.03.2010
Сообщений: 3
Вопрос Visual Basic системы счисления

Программа переводит положительные и отрицательные десятичные числа в двоичный код.Проблема заключается в том что программа выполняет перевод коротких чисел но не выполняет перевод 32 разрядных длинных чисел например 2456765654.Ошибка overflow.Нужно чтобы она переводила любой числовой тип данных .Исходник приведен в архиве.Если у кого-то есть идеи как оптимизировать код то поделитесь ими пожалуйста.Заранее благодарю.

Dim a
Dim c
Dim b As String
Dim s As String
Dim w As String
Dim g
Dim z As String
Dim p As String
Dim q
Private Sub Command1_Click()
Text2.Text = ""
w = 0
z = ""
q = 0
v = 0
n = 0
b = ""
i = 0

a = Text1.Text
If Val(a) >= 0 Then
Do While a > 0
q = a Mod 2 на этом этапе ошибка переполнения overflow при положительных числах
v = Str(q)
n = LTrim(v)
b = b + n
a = a \ 2
i = i + 1
Loop
i = 1
If Len(b) < 32 Then Do While i <= 32 - Len(b): b = b + "0": Loop
w = StrReverse(b)
Text2.Text = w
End If
If Val(a) < 0 Then
a = a * (-1)
Do While a <> 0
If (Abs(a) Mod 2 = 1) Then а на этом при отрицательных
s = "1" + s
Else: s = "0" + s
End If
a = Abs(a) \ 2
Loop
If Len(s) < 32 Then
For i = Len(s) To 31
s = "0" + s
Next
End If
s1 = ""
For i = 32 To 1 Step -1
If Mid(s, i, 1) = "0" Then
s1 = "1" + s1
Else: s1 = "0" + s1
End If
Next
s = s1
If Mid(s, 32, 1) = "0" Then
s = Mid(s, 1, 31) + "1"
Else: s = Mid(s, 1, 31) + "0"
End If
Text2.Text = s
End If
c = 0
End Sub
Вложения
Тип файла: rar 111.rar (1.7 Кб, 18 просмотров)

Последний раз редактировалось maxcoder_1991; 05.03.2010 в 00:27.
maxcoder_1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формула перевода чисел из десятичной системы счисления в 2-ую,8-ую и 16-ую в Microsoft Visual c#? Лютик Помощь студентам 0 18.12.2009 10:42
Системы счисления ruslan-gonch Общие вопросы Delphi 1 26.11.2009 17:20
Системы счисления. glupayastudentka Помощь студентам 1 23.06.2009 22:00
Системы счисления vdv08 Паскаль, Turbo Pascal, PascalABC.NET 1 08.05.2008 17:32