Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520

Декодирование 16, 32 разрядных чисел hex

26.07.2013, 23:16. Показов 3073. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот собственно и сабж...заколебало в ручную пересчитывать,как бы мне реализовать это с вводом кода в диалоговое окно?
на мысль натолкните плиз...

образец:
Code
1
53,00,54,00,4f,00,52,00,41,00,47,00,45,00,5c,00,56,00,6f,00,6c,00,75,00,6d,00,65,00,00,00,00,00
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2013, 23:16
Ответы с готовыми решениями:

Деление 32 разрядных чисел с использованием 16 разрядных регистров
Здравствуйте. Когда у нас одно из чисел 32 разрядное, то мы выполняем деление записывая 32 разр. число в два регистра младш. часть в...

Сложение 32-х разрядных чисел на 16 разрядных регистрах
Здравствуйте! Нужно написать программу для сложение двух чисел: одно 16разрядное, другое 32разрядное. При этом нельзя использовать регистры...

Чтение файла GIF. Перевод текста в HEX. Декодирование GIF анимации
Всем привет.. задача такая: Необходимо открыть файл GIF.. Например, как в этой статье про декодирование.. ...

8
1234 / 424 / 107
Регистрация: 31.03.2012
Сообщений: 1,159
27.07.2013, 06:42
Поможет?
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
s = InputBox ("Введите HEX-числа," & vbCrLf & "разделенные запятыми")
WScript.Echo("Исходная строка: " & s)  
a = Split(LCase(Replace(s, " ", "")), ",")
For i =0 To UBound(a)
    r = 0
    mv = 0
    For n = Len(a(i)) To 1 Step -1
        x = CStr(Mid(a(i), n, 1))
        Select Case x
        Case "0","1","2","3","4","5","6","7","8","9"
            v = CInt(x)
        Case "a": v = 10
        Case "b":   v = 11
        Case "c":   v = 12
        Case "d":   v = 13
        Case "e":   v = 14
        Case "f":   v = 15
        Case Else
            WScript.Echo("Недопустимый символ в строке - (" & x & ") <- (" & a(i) & ")")
            WScript.Quit(-1)
        End Select
        mv = mv + v*16^r
        r = r + 1
    Next
    WScript.Echo(a(i) & " - " & mv)
Next
1
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
27.07.2013, 09:01  [ТС]
Так каждое число в новом окне?
попробую в один текст вывести-там текст зашифрован...
0
1234 / 424 / 107
Регистрация: 31.03.2012
Сообщений: 1,159
28.07.2013, 12:47
Можно сделать немного проще, использую запись HEX-чисел, отпадает необходимость в ручном преобразовании
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
Option Explicit
Dim strIn, strOut
Dim a, i
 
strIn = InputBox ("Введите HEX-числа," & vbCrLf & "разделенные запятыми")
' strIn = "7, 5, 12,  48, fxc, ddd, 8d, ff"
WScript.Echo("Исходная строка: " & strIn)
a = Split(LCase(Replace(strIn, " ", "")), ",")
strOut = ""
On Error Resume Next
 
For i = 0 To UBound(a)
  If i < UBound(a) Then strOut = strOut & CInt("&H" + a(i)) & ","
  If Err.Number > 0 Then
    WScript.Echo(a(i))
    WScript.Echo("для элемента " & a(i) & " - " & CStr(Err.Number) & " " & Err.Description)
    WScript.Quit(-1)
  End If
Next
strOut = strOut & CInt("&H" + a(i-1))
If Err.Number > 0 Then
  WScript.Echo(a(i))
  WScript.Echo("для элемента " & a(i) & " - " & CStr(Err.Number) & " " & Err.Description)
  WScript.Quit(-1)
End If
WScript.Echo(strOut)
1
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
28.07.2013, 18:10  [ТС]
Что то в числа перевожу-а обратно фигня выходит...(((
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
02.08.2013, 02:06
Joeymax, не, там чуть сложнее математика.

Из REG_EXPAND_SZ (REG_MULTI_SZ) в текст:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
strIn = InputBox("Введите значение REG_EXPAND_SZ (REG_MULTI_SZ)")
a = Split(strIn, ",")
 
For i = 0 To UBound(a) Step 2
  strOut = strOut & Chr(CInt("&H" + a(i)))
Next
 
'Урезаем Null '\0'
Do While Right(strOut, 1) = vbNullChar
  strOut = Left(strOut, Len(strOut) - 1)
Loop
 
'Копирование текста в буфер обмена
CreateObject("WScript.Shell").Run "cmd.exe /C <nul set /p ""=" & strOut & """ | CLIP", 0, False
 
ret = InputBox("Результат скопирован в буфер обмена", , strOut)
Из текста в REG_EXPAND_SZ (REG_MULTI_SZ):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
strIn = InputBox ("Введите текст для перевода в REG_EXPAND_SZ (REG_MULTI_SZ)")
 
For i = 1 To len (strIn)
  strOut = strOut & Hex(Asc(mid(strIn,i,1))) & ",00,"
Next
 
strOut = strOut & "00,00"
'Копирование текста в буфер обмена
CreateObject("WScript.Shell").Run "cmd.exe /C <nul set /p ""=" & strOut & """ | CLIP", 0, False
 
ret = inputbox ("Результат скопирован в буфер обмена",,strOut)
Разница между REG_EXPAND_SZ и REG_MULTI_SZ будет в том, что 00,00 (символ Null) в REG_MULTI_SZ интерпретируется как перенос строки (не считая еще одного 00,00 в конце строки. При этом наличие одного переноса строки в конце ее идет всегда по-умолчанию, т.е. заканчивается на 00,00,00,00).

Фишка в коде "копирование в буфер обмена" будет работать только в OS >= Vista.
1
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
02.08.2013, 03:28  [ТС]
Dragokas, все верно.
Более того,я уже накидал таблицу символов для reg_multi_sz (ты наверняка ее видел),так как я не особо силен в vbs,то думал сделать это немного иначе)))

Скрипт работает спасибки-то что надо.
Смотрю как образец-буду по аналогии остальные делать.
В смысле бинарники и т.д.
0
02.08.2013, 20:50

Не по теме:

Koza Nozdri, неа, не видел. У меня сейчас - работа.
Если что нужно срочно - в личку.
И спасибо тебе за номинацию автора FAQ. Не ожидал.

1
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
06.08.2013, 08:35  [ТС]
Dragokas, кстати первый скрипт не то делает.
я тебе таблицу в личку скинул.
не подскажете как программно определить когда байты надо переворачивать а когда нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2013, 08:35
Помогаю со студенческими работами здесь

Найти количество чисел, попадающих в заданный диапазон в массиве 16-разрядных чисел со знаком
помогите выполнить. Найти количество чисел, попадающих в заданный диапазон в массиве 16-разрядных чисел со знаком.

AHDL. Умножитель 4-х разрядных чисел
Доброго времени суток! Дали задание: Разработать в AHDL схему двоично-десятичного умножителя четырехразрядных чисел с магистральным...

Сортировка трех 3-х разрядных чисел
Здрасте! На курсовую работу нужно синтезировать функциональную схему, на входы которой приходят 3 3-разрядных числа (9 входов) и на выходы...

Сравнение двух 10-ти разрядных чисел
Я новичок в программировании микроконтролеров,помогите с алгоритмом сравнения двух 10-разрядных чисел с использованием двух 8-ми разрядных...

Разность двух 16-ти разрядных чисел
Добрый вечер завтра экзамен.В билете 2 вопроса 1)Написать программу вычитания 16-ти разрядных данных для МК AVR 2)Написать...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru