Как обмануть 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
Объяснение кода листинга программы
- Объявляются три переменные: maska, VAL и result типа LONG (без указания размера в байтах).
- Значение переменной maska устанавливается равным 31-битному числу в двоичной системе счисления, т.е. 0x8000.
- Значение переменной VAL устанавливается равным 0.
- Значение переменной result получается путем побитового ИЛИ (OR) значения переменной VAL и значения переменной maska.
- Результат выводится на экран с помощью функции PRINT.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д