Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с байтами 
:(
    Опции темы
Inka94
Дата 12.3.2012, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2012

Репутация: нет
Всего: нет



Снова обращаюсь сюда.Задали вот такую задачку с байтами:
"Поменять местами пятый и шестой биты байта.Подсчитать и вывести в терминал, сколько цифровых символов между соседними пробелами."
Первую часть сделала задания,оказалось не сильно сложно:
Код

import java.io.IOException; 
import java.io.FileOutputStream; 
import java.io.FileInputStream; 

public class Main { 
    public static void main(String[ ] args) throws IOException { 
        byte b=0;byte b0,b1,b2,b3;int d=0; 
        FileInputStream fi=null; 
        FileOutputStream fo=null; 
        try {
            fi=new FileInputStream("f-out.byt"); 
            fo=new FileOutputStream("f-out2.byt"); 
            while ((d=fi.read())!=-1) {
                b=(byte)d; 
                //преобразование b согласно варианту 
                //Поменять местами пятый и шестой биты байта
                b1=(byte)(b&0x10);//выделяю 2 бит b1=(byte)(b&0x04);
                b2=(byte)(b1«1); //смещаю в третий b2=(byte)(b1»1);
                b3=(byte)(b&0x20); //выделяю 3 бит b3=(byte)(b&0x02);
                b4=(byte)(b3»1);//смещаю во 2 бит b4=(byte)(b3«1);
                b5=(byte)(b2 | b4);
                b6=(byte)(b & 0xcf); // b6=(byte)(b & 0xf9);
                b =(byte)(b6 | b5);
                fo.write(b); 
            }
        } catch (IOException e) {
            System.out.println(e);
        } finally{
            if(fo != null) {
                System.out.println(" fo was opened"); 
                fo.close(); 
            }
        }
    }
}

------------------
А вот как сделать вторую вообще не имею понятия...С байтами я новичок,что делать вообще не знаю..Зашла в тупик
PM MAIL   Вверх
lBugl
Дата 13.3.2012, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.8.2009

Репутация: нет
Всего: 2



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

2й алгоритм (примерно)
проходим по предложени, по каждому символу, если символ числовой увеличиваем кол-во на 1, если пробел выводим кол-во на экран и сбрасываем кол-во в ноль (т.е. посчитали кол-во чисел между пробелами в текущей части и преходим к следующей), если не число и не пробел просто читаем следующий символ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0719 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.