Sultan
16 уровень

Codes, inc; Room #004

Статья из группы Архив info.javarush

Бинарные числа

Codes, inc; Room #004 - 1 "Говорят, что плохой программист – это тот, кто считает, что в одном килобайте 1000 байт, а хороший программист – это тот, кто полагает, что в одном километре 1024 метра." Многим эта шутка понятна, так как все знают, что в процессах, связанных с информатикой и компьютерной техникой, фигурирует множество значений, выражаемых степенью двойки, то есть чисел вида 2^K, где K – некоторое неотрицательное целое число. Назовем такие числа бинарными. Это такие числа как 1, 2, 4, 8, 16, 32 и т.д. Действительно, когда речь идет о размере памяти или о разрешении экрана монитора, то мы часто наталкиваемся на бинарные числа. Все это связано с принципом хранения информации в памяти ЭВМ. Задано целое число N. Требуется определить, является ли оно бинарным. Напишите функцию public static boolean isBinary(int n), которая возвращает true, если n - степень двойки, иначе - false. Доп. задание: Попробуйте решить задачу, не используя условий и тернарных операторов ("?:"). Решение: public static boolean isBinary(int n) { return n > 0 && (n & n - 1) == 0; }
Комментарии (18)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
tsev Уровень 30
26 августа 2014
return n > 0 && (n & (n-1)) == 0;
Docktor91 Уровень 40
26 августа 2014
public static boolean solv2e(int n)
{
    return n == 1 || n % 2 == 0 & solv2e(n / 2);
}
Tan4ek Уровень 20
26 августа 2014
public static boolean func(int n){
        return (Math.log(n) / Math.log(2)) == 0;
    }