Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 62

Конвертация byte в single

07.11.2023, 11:59. Показов 1120. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте, пытаюсь собрать дробное число из 4 байт.
Знаю как это сделать на языке С.
Вариант 1:
C
1
2
3
4
5
6
7
uint32_t value=0;
float *valuef=0;
value=byte4<<24;
value+=byte3<<16;
value+=byte2<<8;
value+=byte1;
valuef=(float *) &value;
Вариант 2:
C
1
2
3
4
5
6
7
8
9
10
11
12
typedef union _floatchar 
     {
      float value;
      uint16_t  au16data[2]; 
     } floatchar ;
float uint_to_float(uint16_t high, uint16_t low)
{
    floatchar FloatChar;
    FloatChar.au16data[1]=high;
    FloatChar.au16data[0]=low;
    return FloatChar.value;
}
Но на VB совсем ничего не получается.
Подскажите, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2023, 11:59
Ответы с готовыми решениями:

Равносильная конвертация byte[] -> BigInteger -> byte[]
Здравствуйте. Пишу проект для дипломной работы по криптографии и в нем необходимо считывать из файла заданное количество байт,...

Программа для расшифровки single-byte XOR шифра
Ищу знатоков криптографии и шифрования для написания софта для расшифровки single-byte XOR шифра. Уже создавал такую тему в другом...

Конвертация string to byte
Я завис, помогите, пожалуйста! Не сконвертировать string в byte ругается &quot;Входная строка имела неверный формат.&quot; Я конечно,...

6
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
07.11.2023, 12:25
Visual Basic
1
2
3
4
5
6
Dim b As Byte
Dim s As Single
 
b = 250
 
s = b ' Вот вам и дробное число из 4 байт
Добавлено через 1 минуту
В VB вообще всё конвертируется автоматическим. Этим VB и хорош, в отличии от других языков.
0
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 62
07.11.2023, 12:42  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
Dim b As Byte
Dim s As Single
 
b = 250
 
s = b ' Вот вам и дробное число из 4 байт
Добавлено через 1 минуту
В VB вообще всё конвертируется автоматическим. Этим VB и хорош, в отличии от других языков.
Извините, но мне нужно выполнить преобразование в таком виде.
Миниатюры
Конвертация byte в single  
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
07.11.2023, 14:38
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
Option Explicit
 
Private Type TSingle_01
    b(3)    As Byte
End Type
Private Type TSingle_02
    f       As Single
End Type
 
Private Sub Form_Load()
    Dim t1  As TSingle_01
    Dim t2  As TSingle_02
    
    t1.b(0) = 1
    t1.b(1) = 2
    t1.b(2) = 3
    t1.b(3) = 4
    
    LSet t2 = t1
    
    Debug.Print t2.f
    
End Sub
Добавлено через 1 минуту
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
 
Private Declare Function GetMem4 Lib "msvbvm60" (ByRef pSrc As Any, ByRef pDst As Any) As Long
 
Private Sub Form_Load()
    Dim b(3)    As Byte
    Dim f       As Single
    
    b(0) = 1
    b(1) = 2
    b(2) = 3
    b(3) = 4
    
    GetMem4 b(0), f
    
    Debug.Print f
    
End Sub
2
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 62
07.11.2023, 15:04  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
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
Option Explicit
 
Private Type TSingle_01
    b(3)    As Byte
End Type
Private Type TSingle_02
    f       As Single
End Type
 
Private Sub Form_Load()
    Dim t1  As TSingle_01
    Dim t2  As TSingle_02
    
    t1.b(0) = 1
    t1.b(1) = 2
    t1.b(2) = 3
    t1.b(3) = 4
    
    LSet t2 = t1
    
    Debug.Print t2.f
    
End Sub
Добавлено через 1 минуту
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
 
Private Declare Function GetMem4 Lib "msvbvm60" (ByRef pSrc As Any, ByRef pDst As Any) As Long
 
Private Sub Form_Load()
    Dim b(3)    As Byte
    Dim f       As Single
    
    b(0) = 1
    b(1) = 2
    b(2) = 3
    b(3) = 4
    
    GetMem4 b(0), f
    
    Debug.Print f
    
End Sub
Здравствуйте, подскажите, пожалуйста, а возможно данную функцию реализовать не на Visual Basic, а на Visual Basic Script? Я просто пытаюсь реализовать скрипт для TIA Portal (WinCC), в котором получаю 32 бита по ModbusTCP (2 регистра) в формате word, и эти 32 бита перевожу в float. Тут еще главную трудность вызывает моет полное незнание Visual Basic.
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
10.11.2023, 15:27
Briergo, в VBS отсутствует строгая типизация, там только Variant, для мелких операций с битами и байтами он не годится. Возможно PowerShell будет альтернативой в данном случае, точно не скажу, но на сколько знаю, там можно в WinApi..
1
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,750
10.11.2023, 18:40
Цитата Сообщение от testuser2 Посмотреть сообщение
там только Variant
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Var = 100
MsgBox VarType(Var)        = vbVariant  ' Ложь
MsgBox VarType(Var)        = vbInteger  ' Истина
MsgBox VarType(CInt(Var))  = vbInteger  ' Истина
MsgBox VarType(CLng(Var))  = vbLong     ' Истина
MsgBox VarType(CSng(Var))  = vbSingle   ' Истина
MsgBox VarType(CDbl(Var))  = vbDouble   ' Истина
MsgBox VarType(CCur(Var))  = vbCurrency ' Истина
MsgBox VarType(CDate(Var)) = vbDate     ' Истина
MsgBox VarType(CStr(Var))  = vbString   ' Истина
MsgBox VarType(CByte(Var)) = vbByte     ' Истина
MsgBox VarType(Var = 100)  = vbBoolean  ' Истина
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2023, 18:40
Помогаю со студенческими работами здесь

Конвертация String в BYTE
Всем привет! Столкнулся с проблемой конвертации с String в BYTE. Если кто-то знает как правильно конвертнуть, буду очень благодарен!)

Конвертация byte* в LPCWSTR
написал вот такой код: LPCWSTR byte2wch(BYTE* data, int size) { wchar_t* datas = (wchar_t*)HeapAlloc(GetProcessHeap(), NULL,...

Конвертация BYTE* в LPCSTR
всем привет, делаю имплементацию конвертации массива байтов в строку. LPCSTR byte2ch(BYTE* data, int size) { char* datas =...

Конвертация типа String в Byte
Добрый день. Пишу программу, возникла проблема: нужно каким то образом конвертировать строчку: 193 в тип Byte: var b: byte; s:...

Конвертация из string в byte array
Добрых времени суток. Задача такова, спарсить текст и перевести его в массив байт. Казалось бы все просто byte fsByte =...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru