Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Запись чисел в двоичном виде Добавлено: 27.05.05 11:44  

Автор вопроса:  GlooM | Web-сайт: newlc.info | ICQ: 348453688 
Может быть кому-нибудь пригодиться этот код...

Расположите на форме 1 TextBox, 2 Label и CommandButton...
Private Sub Command1_Click()
Dim ln As Double
Dim ts As String
Dim num As Double
Dim r As Double
num = Text1.Text
ln = 100
If num < 0 Or num > 255 Then Exit Sub
ts = ""
Do While ln > 1
ln = num / 2
r = Round(ln) - ln
If r <> 0 Then
ts = ts + "1"
Else
ts = ts + "0"
End If
If r < 0 Then
r = -r
End If
num = ln - r
Loop

Label2.Caption = "Числу " & Text1.Text & " соответствует двоичное " & StrReverse(ts)
End Sub

Private Sub Form_Load()
Label1.Caption = "Введите десятичное число" & Chr(13) & "от 0 до 255"
End Sub

вот...

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #1 Добавлено: 27.05.05 11:51
Отстойный код какой-то... Ну нафига здесь нужна вещественная арифметика?

Ответить

Номер ответа: 2
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #2
Добавлено: 27.05.05 12:31
а такой? :
Private Sub Command1_Click()
Label1 = hex2bin(Hex$(Text1))
End Sub
Function hex2bin(strInput As String) As String
Dim i As Long
hex2bin = ""
For i = 1 To Len(strInput)
 Select Case Mid$(strInput, i, 1)
  Case "0": hex2bin = hex2bin & "0000": Case "1": hex2bin = hex2bin & "0001"
  Case "2": hex2bin = hex2bin & "0010": Case "3": hex2bin = hex2bin & "0011"
  Case "4": hex2bin = hex2bin & "0100": Case "5": hex2bin = hex2bin & "0101"
  Case "6": hex2bin = hex2bin & "0110": Case "7": hex2bin = hex2bin & "0111"
  Case "8": hex2bin = hex2bin & "1000": Case "9": hex2bin = hex2bin & "1001"
  Case "A": hex2bin = hex2bin & "1010": Case "B": hex2bin = hex2bin & "1011"
  Case "C": hex2bin = hex2bin & "1100": Case ";D": hex2bin = hex2bin & "1101"
  Case "E": hex2bin = hex2bin & "1110": Case "F": hex2bin = hex2bin & "1111"
 End Select
Next i
End Function

Ответить

Номер ответа: 3
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #3
Добавлено: 27.05.05 13:58
хЩААъ...
те [OFF] :))
Eug, ты когда вообще в се бываешь???
[/OFF]

Ответить

Номер ответа: 4
Автор ответа:
 BV



ICQ: 302392161 

Вопросов: 2
Ответов: 28
 Профиль | | #4 Добавлено: 27.05.05 14:54
Ё маё! Опять тут все админы собрались!

Нет, чтобы на VBLand, так по VBStreets, по VBNet'у ходять! :)

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 27.05.05 17:12
2 BV

А ты думал в сказку попал? Форумы то на многих сайтах есть, написать форум тоже особо ума не надо (хотя кому как) А вот раскрутить форум так, как раскручен этот - это года... Поэтому и тусуются тут все админы...

Ответить

Номер ответа: 6
Автор ответа:
 BV



ICQ: 302392161 

Вопросов: 2
Ответов: 28
 Профиль | | #6 Добавлено: 27.05.05 17:30
2 HACKER

А ты думал, что я везде, как и здесь новичёк?

Я прекрасно знаком с очень многими форумами и неплохо знаю как сделать его, хоть на том же phpBB! Не стоит тут умничать-то!

И вообще - это просто шутка была!...

Ответить

Номер ответа: 7
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #7 Добавлено: 28.05.05 11:10
Из десятичного в двоичного:

Public Function dec2bin(ByVal lngNum As Double) As String
    On Error Resume Next
    While lngNum
        dec2bin = lngNum Mod 2 & dec2bin
        lngNum = lngNum \ 2
    Wend
    dec2bin = bin2digit(dec2bin)
End Function


Из шестнадчатеричного в двоичное:

MsgBox dec2bin("&H" & m_Number)


Также можно переводить в шестнадцетиричной вид типы переменных с
других языков. Я имею ввиду, что у vb префикс шестнадцатиричного числа
&H - а у сишника и дельфина другие. Их можно просто переводить
перед счетом и выводить по формуле выше ответ.
Кстати, у восьмеричного в ваське префикс &O. ;)


Offtop:

empro, ты лучше ему на мобилу пиши или звони - он там ежедневно :))
Кстати, скажи свой номер - все забываю у тебя спросить. Лучше сказать
на личку.


Ответить

Номер ответа: 8
Автор ответа:
 Aндрей



ICQ: 259020622 

Вопросов: 30
Ответов: 71
 Профиль | | #8 Добавлено: 28.05.05 11:35

Eug у тебя и правда код кривоватый...

Sur, ты сделал примерно как я и говорил вот сдесь
http://vbnet.ru/forum/show.aspx?id=74330

Private Sub Command1_Click()
Dim s As String
Dim m As Double
m = Val(Text1)
While m <> 1
s = CStr(m Mod 2) + s
m = m \ 2
Wend
s = "1" + s
Label1 = "&#193;&#232;&#237;&#224;&#240;&#237;&#238;&#229; &#239;&#240;&#229;&#228;&#241;&#242;&#224;&#226;&#235;&#229;&#237;&#232;&#229; &#247;&#232;&#241;&#235;&#224; " & s
End Sub

Private Sub Form_Load()
Debug.Print "Made by Polyakov"
End Sub

Вот такому алгоритму нас еще на ВВС учили...

Ответить

Номер ответа: 9
Автор ответа:
 GlooM



ICQ: 348453688 

Вопросов: 88
Ответов: 356
 Web-сайт: newlc.info
 Профиль | | #9
Добавлено: 28.05.05 17:57
не судите строго. т.к. писать пришлось его ОЧЕНь быстро... =)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам