Определение позиции старшей единицы в двоичном числе
REM Определение позиции старшей единицы в двоичном числе
DECLARE FUNCTION LeftBit! (N&)
INPUT "Введите целое число: ", M&
IF M& = 0 THEN PRINT "В этом числе единиц нет": END
PRINT "Старший разряд находится в позиции номер "; LeftBit(M&)
END
FUNCTION LeftBit (N&)
REM Определение позиции старшей единицы в числе N
REM Если N=0, то LeftBit=-1
LeftBit = -1
j& = &H40000000
FOR k = 30 TO 0 STEP -1
IF (j& AND N&) THEN ' Анализ k-того разряда
LeftBit = k
EXIT FUNCTION
END IF
j& = j& / 2
NEXT k
END FUNCTION