Перевод в двоичную в vb6
unreal666 » 25.12.2004 (Сб) 15:59
Александр80 » 25.12.2004 (Сб) 16:41
Функция CDbl преобразует в Double (двойной)
‘Создай два текстовых поля и кнопку.
‘Cint -Integer (Целый)
‘CDbl-Double (двойной)
Dim a , b
Private Sub Command1_Click()
a = 23
b = 7
Text1.Text = CInt(a / b)
Text2.Text = CDbl(a / b)
End Sub
GSerg » 25.12.2004 (Сб) 16:48
Александр80 » 25.12.2004 (Сб) 16:51
CBool- Boolean (булевой)
CByte — Byte (Байты)
Ccur — Currency (Денежный)
Cdate — Date (Дата)
CDbl — Double (двойной)
Cint — Integer (Целый)
CLng — Long (Длинный)
CSng — Singl (Одинарный)
CStr — String (Строковой)
Cvar — Variant (Вариантный)
CVerr — Error (Ошибка)
GSerg » 25.12.2004 (Сб) 16:54
Александр80 » 25.12.2004 (Сб) 16:58
GSerg » 25.12.2004 (Сб) 17:03
Если бы Пятигорск вместо «Михайло» использовал «Александр», недопониманий было бы меньше
Человек интересуется переводом в двоичную систему, а не в . эээ. двойную aka double
Ему нужно 2 10
3 11
4 100
.
А я просто смотрю, и мысли вслух пощу
Александр80 » 25.12.2004 (Сб) 17:06
GSerg » 25.12.2004 (Сб) 17:08
Александр80 » 25.12.2004 (Сб) 17:55
Александр80 » 25.12.2004 (Сб) 18:25
Переводит значение тз типа Byte (числа от 0 до 255) в тип Binary
Private Sub Command1_Click()
Text2.Text = sBin(Text1.Text)
End Sub
Public Function sBin(ByVal b As Byte) As String
Dim i As Integer
For i = 0 To 7
If b And 2 ^ i Then
sBin = 1 & sBin
Else
sBin = 0 & sBin
End If
Next i
End Function
А как еще можно?
tyomitch » 25.12.2004 (Сб) 19:32
Ещё например так, как показал Zer по ссылке из твоего предыдущего поста.
А твой способ, кстати, будет сильно тормозным из-за возведения в степень.
И ещё, «Binary» — это не тип числа, а его представление . Число м.б. большим либо маленьким, целым либо дробным, и независимо от этого — представленным в любой системе счисления.
Александр80 » 25.12.2004 (Сб) 20:38
Советы тем, кто программирует на VB & VBA
Андрей Колесов, Ольга Павлова
Совет 322. Получение даты последней коррекции файла
Для работы иногда полезно получить данные о дате создания или последней коррекции файла. Для этого можно использовать функцию FileDateTime(ИмяФайла), например:
С помощью этой же функции можно определить время создания каталога, но следует иметь в виду, что имя каталога в данном случае не должно заканчиваться на обратную косую черту:
Но получить дату создания корневого каталога (то есть диска) с использование FileDateTime нельзя.
Совет 323. Преобразование кода цвета из DOS в Windows
Как известно, в стандартном варианте DOS использовалось 16 цветов, а сейчас в Windows их 16 777 216 (16M). Точнее говоря, такая палитра определяется не операционной системой, а техническими характеристиками мониторов.
Несмотря на такое мощное расширение состава палитры, для решения многих задач бывает удобнее воспользоваться ограниченным количеством цветов. К тому же порой необходимо точно воспроизвести в VB-цвета, которые использовались в DOS (например, при работе с QuickBasic).
В любом случае, возникает задача преобразования кодов цветов из DOS в Windows, которая, казалось бы, легко решается с помощью встроенной функции QBColor:
Однако небольшое исследование показывает, что такой вариант представляет собой весьма приблизительное решение.
С помощью следующей конструкции:
можно получить таблицу соответствия кодов DOS и Windows.
Windows (Visual Basic)
Код: десятичный (двоичный)
(точный перевод с английского)
Здесь хорошо видны принципы кодирования цветов в DOS и Windows. В обоих случаях цвет задается комбинацией красного, зеленого и синего (Red, Green, Blue). Но в первом варианте используется лишь один разряд (то есть две градации цвета — есть или нет данной составляющей), а во втором — целый байт (256 градаций). В DOS увеличение цветовой гаммы в два раза достигается наличием четвертого разряда, который задает нормальную или повышенную яркость (но не для каждого компонента, а для всей комбинации).
Казалось бы, на этом можно поставить точку, но из таблицы видно некоторое несоответствие в логике преобразования кода. Почти для всех цветов замена кода выполняется по такому правилу: для нормальной яркости двоичный разряд со значением 1 заменяется на &h80, для повышенной яркости — на &hFF. Но имеется также исключение из этого правила для цветов 7 и 8. Следует обратить внимание и на разные названия, например одинаковых цветов, которые используются в английском и русском вариантах Help. Оказывается, это не неточность перевода, а отражение реального несоответствия цветов в DOS и в Windows после преобразования кодов с помощью QBColor.
Визуальное сравнение изображений палитры из 16 цветов, полученных в среде QB и VB, показало заметное расхождение в красках, поэтому мы выполнили следующий эксперимент:
импортировали графический файл с палитрой QB в VB и прочитали RGB-код каждого цвета. По результатам замеров мы сделали свою функцию преобразования кодов цветов из DOS в Windows:
Здесь следует обратить внимание на следующие моменты.
- Для нормальной яркости двоичный разряд со значением 1 меняется на &hAA, а для повышенной яркости — на &hFF. Но в последнем случае нулевой двоичный разряд меняется на шестнадцатиричное 55 (в двоичном варианте это выглядит как 01010101).
- Как ни странно, код 6 опять отличается от ожидаемой величины (было бы логично увидеть &hAAAA). При этом нужно отметить, что этот код действительно Brown (коричневый) — именно так он называется в QB. В документации VB он именуется как Yellow, что явно не соответствует действительности.