Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите с задачей о байтах (http://www.tehnari.ru/f41/t70493/)

Inn 12.03.2012 23:28

Помогите с задачей о байтах
 
Задали вот такую задачку с байтами:
"Поменять местами пятый и шестой биты байта.Подсчитать и вывести в терминал, сколько цифровых символов между соседними пробелами."
Первую часть сделала задания,оказалось не сильно сложно:
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("error");}
finally{if(fo!=null){
System.out.println(" fo was opened");
fo.close();

------------------
А вот как сделать вторую вообще не имею понятия...С байтами я новичок,что делать вообще не знаю..Зашла в тупик.Задача на Java


Часовой пояс GMT +4, время: 04:11.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.