解决方案 »

  1.   


    public class InformationCode {
    private BitSet bitSet;

    public InformationCode() {
    bitSet = new BitSet(64);
    }
    private void setInt(int value, int bitPosition, int bitSize) {
    for (int i = bitPosition + bitSize - 1; i >= bitPosition; i--) {
    if ((value & 0x1) != 0) {
    bitSet.set(i);
    } else {
    bitSet.clear(i);
    }
    value >>>= 1;
    }
    }
    public byte[] toBytes() {
    return bitSet.toByteArray();
    }
    public void setProvince(int province) {
    setInt(province, 0, 6);
    }
    public void setCity(int city) {
    setInt(city, 6, 10);
    }
    public void setZone(int zone) {
    setInt(zone, 16, 12);
    }
    public void setSchool(int school) {
    setInt(school, 28, 20);
    }
    public void setGrade(int grade) {
    setInt(grade, 48, 8);
    }
    public void setClass(int clazz) {
    setInt(clazz, 56, 8);
    }
    }