解决方案 »

  1.   

    谢谢楼上1楼和2楼的回复。
    我还想表达的是,怎么设计实体类和各种方法,能做到给某个属性设置值之后,就可以得到一个Application header,示例如下:ACP protocol设置为1
    Private Flag设置为0
    Test Flag设置为0
    Message Type设置为31(二进制即11111)
    Version Flag设置为0
    Version设置为0
    Message Control Flag设置为1010
    Message Length设置为132(二进制即10000100) 由于表格中的第0位到第7位是从左到右,我们都知道应该是从右到左,
    那么,倒过来就是
    第一个byte是:11111001
    第二个byte是:01010000
    第三个byte是:10000100
    第四个byte是:00000000 最后得到的Application header就是四个byte合起来
    11111001 01010000 10000100  00000000要达到的是这样的效果,并且随便拿到一个Application header也能解析出其各属性的值。
      

  2.   

    假设读取和写入的都是字节数组,我就拿前第一个字节的四个属性为例写下读取和写入的代码段,后面的楼主自己琢磨下,应该没啥难度。public class ApplicationHeader {
        private int  _apc_protocol;
        private int  _private_Flag;
        private int  _test_Flag;
        private int  _message_Type;     public void read(byte[] bytes){
                _apc_protocol = bytes[0] & 1;
                _private_Flag = (bytes[0] & 2) >> 1;
                _test_Flag = (bytes[0] & 4) >> 2;
                _message_Type = bytes[0] >> 3;
        }    public byte[] write(){
            byte[] bytes = new byte[4];
            int tmp = (_apc_protocol & 1) | ((_private_Flag & 1) << 1) | ((_test_Flag & 1) << 2) | _message_Type << 3;
            bytes[0] = (byte)tmp;
            
            return bytes;
        }
    }什么封装属性字段的get set的方法,我就懒得贴了,累
      

  3.   

    确实是我想要的,谢谢!
    用byte[]更方便
    分都给你