<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA基本數(shù)據(jù)類型與其他語言數(shù)據(jù)類型之間的轉(zhuǎn)換方法 (ZT)

     

    /**
      * 通信格式轉(zhuǎn)換
      *
      * Java和一些windows編程語言如c、c++、delphi所寫的網(wǎng)絡(luò)程序進(jìn)行通訊時,需要進(jìn)行相應(yīng)的轉(zhuǎn)換
      * 高、低字節(jié)之間的轉(zhuǎn)換
      * windows的字節(jié)序為低字節(jié)開頭
      * linux,unix的字節(jié)序為高字節(jié)開頭
      * java則無論平臺變化,都是高字節(jié)開頭
       
    */
     

    public class FormatTransfer {
      
    /**
       * 將int轉(zhuǎn)為低字節(jié)在前,高字節(jié)在后的byte數(shù)組
       * 
    @param n int
       * 
    @return byte[]
       
    */

      
    public static byte[] toLH(int n) {
        
    byte[] b = new byte[4];
        b[
    0= (byte) (n & 0xff);
        b[
    1= (byte) (n >> 8 & 0xff);
        b[
    2= (byte) (n >> 16 & 0xff);
        b[
    3= (byte) (n >> 24 & 0xff);
        
    return b;
      }
     

      
    /**
       * 將int轉(zhuǎn)為高字節(jié)在前,低字節(jié)在后的byte數(shù)組
       * 
    @param n int
       * 
    @return byte[]
       
    */

      
    public static byte[] toHH(int n) {
        
    byte[] b = new byte[4];
        b[
    3= (byte) (n & 0xff);
        b[
    2= (byte) (n >> 8 & 0xff);
        b[
    1= (byte) (n >> 16 & 0xff);
        b[
    0= (byte) (n >> 24 & 0xff);
        
    return b;
      }
     

      
    /**
       * 將short轉(zhuǎn)為低字節(jié)在前,高字節(jié)在后的byte數(shù)組
       * 
    @param n short
       * 
    @return byte[]
       
    */

      
    public static byte[] toLH(short n) {
        
    byte[] b = new byte[2];
        b[
    0= (byte) (n & 0xff);
        b[
    1= (byte) (n >> 8 & 0xff);
        
    return b;
      }
     

      
    /**
       * 將short轉(zhuǎn)為高字節(jié)在前,低字節(jié)在后的byte數(shù)組
       * 
    @param n short
       * 
    @return byte[]
       
    */

      
    public static byte[] toHH(short n) {
        
    byte[] b = new byte[2];
        b[
    1= (byte) (n & 0xff);
        b[
    0= (byte) (n >> 8 & 0xff);
        
    return b;
      }
     

     

      
    /**
       * 將將int轉(zhuǎn)為高字節(jié)在前,低字節(jié)在后的byte數(shù)組 
      
    */

      
    public static byte[] toHH(int number) {
        
    int temp = number;
        
    byte[] b = new byte[4];
        
    for (int i = b.length - 1; i > -1; i--{
          b[i] 
    = new Integer(temp & 0xff).byteValue();
          temp 
    = temp >> 8;
        }

        
    return b;
      }
     

      
    public static byte[] IntToByteArray(int i) {
            
    byte[] abyte0 = new byte[4];
            abyte0[
    3= (byte) (0xff & i);
            abyte0[
    2= (byte) ((0xff00 & i) >> 8);
            abyte0[
    1= (byte) ((0xff0000 & i) >> 16);
            abyte0[
    0= (byte) ((0xff000000 & i) >> 24);
            
    return abyte0;
      }
     


       

      
    /**
       * 將float轉(zhuǎn)為低字節(jié)在前,高字節(jié)在后的byte數(shù)組
       
    */

      
    public static byte[] toLH(float f) {
        
    return toLH(Float.floatToRawIntBits(f));
      }
     

      
    /**
       * 將float轉(zhuǎn)為高字節(jié)在前,低字節(jié)在后的byte數(shù)組
       
    */

      
    public static byte[] toHH(float f) {
        
    return toHH(Float.floatToRawIntBits(f));
      }
     

      
    /**
       * 將String轉(zhuǎn)為byte數(shù)組
       
    */

      
    public static byte[] stringToBytes(String s, int length) {
        
    while (s.getBytes().length < length) {
          s 
    += " ";
        }

        
    return s.getBytes();
      }
     


      
    /**
       * 將字節(jié)數(shù)組轉(zhuǎn)換為String
       * 
    @param b byte[]
       * 
    @return String
       
    */

      
    public static String bytesToString(byte[] b) {
        StringBuffer result 
    = new StringBuffer("");
        
    int length = b.length;
        
    for (int i=0; i      result.append((char)(b[i] & 0xff));
        }

        
    return result.toString();
      }
     

      
    /**
       * 將字符串轉(zhuǎn)換為byte數(shù)組
       * 
    @param s String
       * 
    @return byte[]
       
    */

      
    public static byte[] stringToBytes(String s) {
        
    return s.getBytes();
      }
     

      
    /**
       * 將高字節(jié)數(shù)組轉(zhuǎn)換為int
       * 
    @param b byte[]
       * 
    @return int
       
    */

      
    public static int hBytesToInt(byte[] b) {
        
    int s = 0;
        
    for (int i = 0; i < 3; i++{
          
    if (b[i] >= 0{
            s 
    = s + b[i];
          }
     else {
            s 
    = s + 256 + b[i];
          }

          s 
    = s * 256;
        }

        
    if (b[3>= 0{
          s 
    = s + b[3];
        }
     else {
          s 
    = s + 256 + b[3];
        }

        
    return s;
      }
     

      
    /**
       * 將低字節(jié)數(shù)組轉(zhuǎn)換為int
       * 
    @param b byte[]
       * 
    @return int
       
    */

      
    public static int lBytesToInt(byte[] b) {
        
    int s = 0;
        
    for (int i = 0; i < 3; i++{
          
    if (b[3-i] >= 0{
            s 
    = s + b[3-i];
          }
     else {
            s 
    = s + 256 + b[3-i];
          }

          s 
    = s * 256;
        }

        
    if (b[0>= 0{
          s 
    = s + b[0];
        }
     else {
          s 
    = s + 256 + b[0];
        }

        
    return s;
      }
     


      
    /**
       * 高字節(jié)數(shù)組到short的轉(zhuǎn)換
       * 
    @param b byte[]
       * 
    @return short
       
    */

      
    public static short hBytesToShort(byte[] b) {
        
    int s = 0;
        
    if (b[0>= 0{
            s 
    = s + b[0];
          }
     else {
            s 
    = s + 256 + b[0];
          }

          s 
    = s * 256;
        
    if (b[1>= 0{
          s 
    = s + b[1];
        }
     else {
          s 
    = s + 256 + b[1];
        }

        
    short result = (short)s;
        
    return result;
      }
     

      
    /**
       * 低字節(jié)數(shù)組到short的轉(zhuǎn)換
       * 
    @param b byte[]
       * 
    @return short
       
    */

      
    public static short lBytesToShort(byte[] b) {
        
    int s = 0;
        
    if (b[1>= 0{
            s 
    = s + b[1];
          }
     else {
            s 
    = s + 256 + b[1];
          }

          s 
    = s * 256;
        
    if (b[0>= 0{
          s 
    = s + b[0];
        }
     else {
          s 
    = s + 256 + b[0];
        }

        
    short result = (short)s;
        
    return result;
      }
     

      
    /**
       * 高字節(jié)數(shù)組轉(zhuǎn)換為float
       * 
    @param b byte[]
       * 
    @return float
       
    */

      
    public static float hBytesToFloat(byte[] b) {
        
    int i = 0;
        Float F 
    = new Float(0.0);
        i 
    = ((((b[0]&0xff)<<8 | (b[1]&0xff))<<8| (b[2]&0xff))<<8 | (b[3]&0xff);
        
    return F.intBitsToFloat(i);
      }
     

      
    /**
       * 低字節(jié)數(shù)組轉(zhuǎn)換為float
       * 
    @param b byte[]
       * 
    @return float
       
    */

      
    public static float lBytesToFloat(byte[] b) {
        
    int i = 0;
        Float F 
    = new Float(0.0);
        i 
    = ((((b[3]&0xff)<<8 | (b[2]&0xff))<<8| (b[1]&0xff))<<8 | (b[0]&0xff);
        
    return F.intBitsToFloat(i);
      }
     

      
    /**
       * 將byte數(shù)組中的元素倒序排列
       
    */

      
    public static byte[] bytesReverseOrder(byte[] b) {
        
    int length = b.length;
        
    byte[] result = new byte[length];
        
    for(int i=0; i      result[length-i-1= b[i];
        }

        
    return result;
      } 

      
    /**
       * 打印byte數(shù)組
       
    */

      
    public static void printBytes(byte[] bb) {
        
    int length = bb.length;
        
    for (int i=0; i      System.out.print(bb[i] + " ");
        }

        System.out.println(
    "");
      } 

      
    public static void logBytes(byte[] bb) {
        
    int length = bb.length;
        String out 
    = "";
        
    for (int i=0; i      out = out + bb[i] + " ";
        }
     

      } 

      
    /**
       * 將int類型的值轉(zhuǎn)換為字節(jié)序顛倒過來對應(yīng)的int值
       * 
    @param i int
       * 
    @return int
       
    */

      
    public static int reverseInt(int i) {
        
    int result = FormatTransfer.hBytesToInt(FormatTransfer.toLH(i));
        
    return result;
      }
     

      
    /**
       * 將short類型的值轉(zhuǎn)換為字節(jié)序顛倒過來對應(yīng)的short值
       * 
    @param s short
       * 
    @return short
       
    */

      
    public static short reverseShort(short s) {
        
    short result = FormatTransfer.hBytesToShort(FormatTransfer.toLH(s));
        
    return result;
      }
     

      
    /**
       * 將float類型的值轉(zhuǎn)換為字節(jié)序顛倒過來對應(yīng)的float值
       * 
    @param f float
       * 
    @return float
       
    */

      
    public static float reverseFloat(float f) {
        
    float result = FormatTransfer.hBytesToFloat(FormatTransfer.toLH(f));
        
    return result;
      }
     

    }

    posted on 2008-07-20 12:02 SeesSea 閱讀(323) 評論(0)  編輯  收藏 所屬分類: JAVA

    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品免费久久久久影院| 亚洲欧美日韩中文无线码| 亚洲白色白色永久观看| 亚洲av乱码一区二区三区 | 77777_亚洲午夜久久多人| 亚洲另类古典武侠| 亚洲精品色在线网站| 色www永久免费| 99国产精品永久免费视频| 国产免费观看青青草原网站| 亚洲人成网77777色在线播放| 亚洲另类春色国产精品| 成年大片免费高清在线看黄| 一级毛片不卡片免费观看| 大陆一级毛片免费视频观看i| 亚洲精品无码久久久久AV麻豆| 亚洲男人天堂2017| 亚洲国产成人手机在线观看| 成人片黄网站色大片免费观看APP| 免费大片黄在线观看yw| 亚洲性久久久影院| 亚洲冬月枫中文字幕在线看| 免费国产高清毛不卡片基地| 久久国产乱子伦免费精品| 在线视频免费国产成人| 久久91亚洲精品中文字幕| 亚洲色大成网站www永久男同| 羞羞视频免费网站在线看| 亚洲中文无码永久免费| 伊伊人成亚洲综合人网7777| 亚洲国产系列一区二区三区| 中文在线观看国语高清免费| 成人午夜性A级毛片免费| 久久九九亚洲精品| 久久综合亚洲色hezyo| 精品无码AV无码免费专区| 免费va人成视频网站全| 亚洲字幕在线观看| 三上悠亚电影全集免费| 国产无遮挡又黄又爽免费视频| 在线电影你懂的亚洲|