Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Excel

Как разбить 1 Long на 2 Integer

16.05.2012, 19:43. Показов 2414. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Извиняюсь за "чайниковатость"
Есть переменная Sign типа Long
Необходимо красиво (с точки зрения процессора) разбить её на две переменных Left и Right типа Integer, так чтобы
Left = старшие 2 байта Sign
Right= младшие 2 байта Sign

Спасибо заранее.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2012, 19:43
Ответы с готовыми решениями:

Implicit conversion loses integer precision: 'qint64' (aka 'long long') to 'int'
Выдает вот такой варнинг. Как его исправить? void MainWindow::readPendingDatagrams() { QByteArray buffer; ...

Long в Integer
Как тип Long в Integer преобразовать?

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p и возвращает ap. Помогите...

6
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
17.05.2012, 12:07
Для этого нужны беззнаковые типы, а Long и Integer - знаковые.
Вывод: корректно решить эту задачу невозможно.
0
Excel
18.05.2012, 22:09
Дело в том, что переменную Sign возвращает API-функция (waveInStart из winmm.dll), вернее даже не переменную, а просто API возвращает число в ячейки памяти с адресом VarPrt(Sign).
Значение Sign - это результат Аналого-Цифрового Преобразования входного сигнала в звуковой карте. Причём результат преобразования обоих стереоканалов одновременно. Из документации:"Для стереофонического используется массив двойных слов, причем младшему слову соответствует левый канал, а старшему - правый."
Вот здесь и засада... Как корректно разделить каналы?
Мож есть у кого предложения?

Для этого нужны беззнаковые типы, а Long и Integer - знаковые
Кстати, а каким типом нужно объявить Sign, чтобы в десятичном представлении это было число от 0 до 65535, то есть чтобы старший бит не воспринимался как знаковый?
Messir
19.05.2012, 04:54
Цитата Сообщение от Excel
Вот здесь и засада... Как корректно разделить каналы?
Мож есть у кого предложения?
Да обычным битовым And'ом
Цитата Сообщение от Excel
Кстати, а каким типом нужно объявить Sign, чтобы в десятичном представлении это было число от 0 до 65535, то есть чтобы старший бит не воспринимался как знаковый?
VB беззнаковых типов не имеет. Но можно вместо Integer'а Long использовать, чтобы на знак не заморачиваться.
CatsTail
21.05.2012, 01:38
Есть такая API-функция CopyMemory. С ее помощью можно скопировать два байта в одно целое, и еще два - в другое.
Excel
21.05.2012, 09:58
Решил проблему по-другому:
1. Объявил Sign как массив
Dim Sign(1) As Integer
2. Указал API возвращать 4 байта в адрес VarPrt(Sign(0))
3. Получил Sign(0) - Правый , Sign(1) - Левый
Не знаю, может и некорректно, но пока работает

Всем большое спасибо.


4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
21.05.2012, 12:27
Ещё один вариант:
пишешь свой Long в файл и читаешь из него два Integer'a.
Сам не пробовал, но должно работать.
Неожиданно нашёл в твоей теме ответ на свой старый вопрос. СПАСИБО!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2012, 12:27
Помогаю со студенческими работами здесь

Типы данных, бейсиковские аналоги LONG и INTEGER
подскажите, пожалуйста, какие типы данных мне использовать при определении типов данных в таблице, чтобы они соответствовали бейсиковским...

В чем разница между типами данных Integer и Long?
В чем разница между типами данных Integer и Long?

Не могу создать delegate к функциям типа long MyFunction(string,integer)
ребята , может кто-то из вас может мне помочь . мне срочно надо сдать работу , а я толком не поняла тему и не знаю как это сделать. есть...

Как char[] перевести в битовую маску long long(64 бита) и наоборот?
Как char перевести в битовую маску long long(64 бита) и наоборот?

Как создать ссылку на long и наполнить значениями типа long-ссылка DataTable
Столкнулся с проблемой, в решении которой прошу вас помочь. DataTable была нужна мне чтобы вывести в DataGrid сложную структуру данных....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru