Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






ПРИМЕР 5. Создание класса ShowBits






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

Последовательность действий

1. Создайте новый файл ShowBitsDemo.java.

2. Создайте класс ShowBits, начав его со следующего кода:

class ShowBits {

int numbits;

ShowBits(int n) {

numbits = n;

}

Конструктор класса ShowBits позволяет создавать объекты, отображающие заданное число битов. Например, для создания объекта, отображающего 8 младших битов некоторого значения, служит следующее выражение:

ShowBits byteval = new ShowBits(8)

Число битов, предназначаемых для отображения, сохраняется в переменной экземпляра numbits.

3. Для вывода двоичных значений в классе ShowBits определен метод show (), код которого приведен ниже.

void show(long val) {

long mask = 1;

// сдвинуть значение 1 влево на нужную позицию

mask «= numbits-1;

int spacer = 0;

for(; mask! = 0; mask >» = 1) {

if((val & mask)! = 0) System.out.print(" 1");

else System.out.print(" 0");

spacer++;

if((spacer % 8) ==0) {

System.out.print(" ");

spacer = 0;

}

}

System.out.println();

}

Обратите внимание на то, что данному методу передается один параметр типа long. Но это совсем не означает, что при вызове ему нужно всегда передавать значение типа long. Правила автоматического продвижения типов в Java допускают передавать методу show () любое целочисленное значение. А количество отображаемых битов определяется переменной numbits. Группы из 8 битов разделяются в методе show () пробелами. Это упрощает восприятие длинных двоичных комбинаций.

4. Ниже приведен весь исходный код программы из файла ShowBitsDemo.java.

// Создание класса для отображения значений в двоичном виде.

class ShowBits {

int numbits;

ShowBits(int n) {

numbits = n;

}

void show(long val) {

long mask = 1;

// сдвинуть значения 1 влево на нужную позицию

mask «= numbits-1;

int spacer = 0;

for(; mask! = 0; mask > > > = 1) {

if((val & mask)! = 0) System.out.print(" 1");

else System.out.print(" 0");

spacer++;

if((spacer % 8) == 0) {

System.out.print (•' ”);

spacer = 0;

}

}

System.out.println0;

}

}

// продемонстрировать класс ShowBits

class ShowBitsDemo {

public static void main(String args[]) {

ShowBits b = new ShowBits(8);

ShowBits i = new ShowBits(32);

ShowBits li = new ShowBits(64); V*

System.out.printIn(" 123 in binary: ");

b.show(123);

System.out.println(" \n87987 in binary: ");

i.show(87987);

System.out.println(" \n237658768 in binary: ");

li.show (237658768);

// можно также отобразить младшие разряды любого целого числа

System.out.println(" \nLow order 8 bits of 87987 in binary: ");

b.show(87987);

}

}

5. Результат выполнения программы ShowBitsDemo выгладит следующим образом:

123 in binary:

87987 in binary:

00000000 00000001 01010111 10110011

237658768 in binary:

00000000 00000000 00000000 00000000 00001110 00101010 01100010 10010000

Low order 8 bits of 87987 in binary:

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.