Как обмануть 15-й бит? - QBasic

Узнай цену своей работы

Формулировка задачи:

Проблема в том, что QB не знает униполярных чисел(такая же проблема вылазит и на VB). Суть в следующем: Хочу установить 15-й бит длинного числа:
Результат будет &hFFFF8000, то есть. автоматически устанавливается знаковый 31-й бит, как это исключить? Есть решение ч/з POOKE, но это долго, может, кто подскажет вариант быстрее? Моя признательность не будет иметь границ в разумных пределах.

Решение задачи: «Как обмануть 15-й бит?»

textual
Листинг программы
DIM maska AS LONG, VAL AS LONG, result AS LONG
maska = &H8000&
VAL = 0
result = VAL OR maska
PRINT result

Объяснение кода листинга программы

  1. Объявляются три переменные: maska, VAL и result типа LONG (без указания размера в байтах).
  2. Значение переменной maska устанавливается равным 31-битному числу в двоичной системе счисления, т.е. 0x8000.
  3. Значение переменной VAL устанавливается равным 0.
  4. Значение переменной result получается путем побитового ИЛИ (OR) значения переменной VAL и значения переменной maska.
  5. Результат выводится на экран с помощью функции PRINT.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5