Помогите с задачей о байтах
Задали вот такую задачку с байтами:
"Поменять местами пятый и шестой биты байта.Подсчитать и вывести в терминал, сколько цифровых символов между соседними пробелами." Первую часть сделала задания,оказалось не сильно сложно: 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.