msgidconverter.java

来自「采用JAVA开发」· Java 代码 · 共 80 行

JAVA
80
字号
package com.gctech.sms.util;

import java.io.OutputStream;
import java.io.IOException;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: gctech</p>
 * @author 王红宝
 * @version $Id: MsgIdConverter.java,v 1.1.1.1 2004/04/21 09:30:41 wanghb Exp $
 */

public class MsgIdConverter {
  public MsgIdConverter() {
  }
  public static void writeBcdNumber(OutputStream theOs, String theNumber)
        throws IOException
    {
        int bcd = 0x00;
        int n = 0;

        // First convert to a "half octet" value
        for(int i=0; i < theNumber.length(); i++)
        {
            switch(theNumber.charAt(i))
            {
            case '0': bcd |= 0x00; break;
            case '1': bcd |= 0x10; break;
            case '2': bcd |= 0x20; break;
            case '3': bcd |= 0x30; break;
            case '4': bcd |= 0x40; break;
            case '5': bcd |= 0x50; break;
            case '6': bcd |= 0x60; break;
            case '7': bcd |= 0x70; break;
            case '8': bcd |= 0x80; break;
            case '9': bcd |= 0x90; break;
            case '*': bcd |= 0xA0; break;
            case '#': bcd |= 0xB0; break;
            case 'a': bcd |= 0xC0; break;
            case 'b': bcd |= 0xE0; break;
            }

            n++;

            if (n == 2)
            {
                theOs.write(bcd);
                n = 0;
                bcd = 0x00;
            }
            else
            {
                bcd >>= 4;
            }
        }

        if (n == 1)
        {
            bcd |= 0xF0;
            theOs.write(bcd);
        }
    }

  public static StringBuffer convert(byte[] b){
    StringBuffer sb = new StringBuffer();
    for(int i=0; i<b.length; i++) {
      int v = (int)b[i];
      v = v < 0 ? 0x100+v :v;
      String cc = Integer.toHexString(v);
      if( cc.length()==1 )
        sb.append( '0' );
      sb.append( cc );
    }
    return sb;
  }


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?