Java与其他语言数据类型之间的转换方法

2016-02-19 19:30 6 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Java与其他语言数据类型之间的转换方法的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

Java与其他语言数据类型之间的转换方法实例程序

  /**
  * 通信格式转换
  *
  * Java和一些windows编程语言如c、c++、Delphi所写的网络程序进行通讯时,需要进行相应的转换
  * 高、低字节之间的转换
  * windows的字节序为低字节开头
  * Linux,unix的字节序为高字节开头
  * java则无论平台变化,都是高字节开头
    */

  public class FormatTransfer {
  /**
    * 将int转为低字节在前,高字节在后的byte数组
    * @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转为高字节在前,低字节在后的byte数组
    * @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转为低字节在前,高字节在后的byte数组
    * @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转为高字节在前,低字节在后的byte数组
    * @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转为高字节在前,低字节在后的byte数组

  public static byte[] toHH(int number) {
    int temp = number;
    byte[] b = new byte[4];
    for (int i = b.length - 1; i -1; i--) {
      b = 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转为低字节在前,高字节在后的byte数组
    */
  public static byte[] toLH(float f) {
  
     return toLH(Float.floatToRawIntBits(f));
  }

  /**
    * 将float转为高字节在前,低字节在后的byte数组
    */
  public static byte[] toHH(float f) {
    return toHH(Float.floatToRawIntBits(f));
  }

  /**
    * 将String转为byte数组
    */
  public static byte[] stringToBytes(String s, int length) {
    while (s.getBytes().length length) {
      s += " ";
    }
    return s.getBytes();
  }

  
  /**
    * 将字节数组转换为String
    * @param b byte[]
    * @return String
    */
  public static String bytesToString(byte[] b) {
    StringBuffer result = new StringBuffer("");
    int length = b.length;
    for (int i=0; ilength; i++) {
      result.append((char)(b & 0xff));
    }
    return result.toString();
  }

  /**
    * 将字符串转换为byte数组
    * @param s String
    * @return byte[]
    */
  public static byte[] stringToBytes(String s) {
    return s.getBytes();
  }

  /**
    * 将高字节数组转换为int
    * @param b byte[]
    * @return int
    */
  public static int hBytesToInt(byte[] b) {
    int s = 0;
    for (int i = 0; i 3; i++) {
      if (b = 0) {
      s = s + b;
      } else {
      s = s + 256 + b;
      }
      s = s * 256;
    }
    if (b[3] = 0) {
      s = s + b[3];
    } else {
      s = s + 256 + b[3];
    }
    return s;
  }

  /**
    * 将低字节数组转换为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;
  }

  
  /**
    * 高字节数组到short的转换
    * @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;
  }

  /**
    * 低字节数组到short的转换
    * @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;
  }

  /**
    * 高字节数组转换为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);
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  /**
    * 低字节数组转换为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数组中的元素倒序排列
    */
  public static byte[] bytesReverseOrder(byte[] b) {
    int length = b.length;
    byte[] result = new byte[length];
    for(int i=0; ilength; i++) {
      result[length-i-1] = b;
    }
    return result;
  }

  /**
    * 打印byte数组
    */
  public static void printBytes(byte[] bb) {
    int length = bb.length;
    for (int i=0; ilength; i++) {
      System.out.print(bb + " ");
    }
    System.out.println("");
  }

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

  }

  /**
    * 将int类型的值转换为字节序颠倒过来对应的int值
    * @param i int
    * @return int
    */
  public static int reverseInt(int i) {
    int result = FormatTransfer.hBytesToInt(FormatTransfer.toLH(i));
    return result;
  }

  /**
    * 将short类型的值转换为字节序颠倒过来对应的short值
    * @param s short
    * @return short
    */
  public static short reverseShort(short s) {
    short result = FormatTransfer.hBytesToShort(FormatTransfer.toLH(s));
    return result;
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  /**
    * 将float类型的值转换为字节序颠倒过来对应的float值
    * @param f float
    * @return float
    */
  public static float reverseFloat(float f) {
    float result = FormatTransfer.hBytesToFloat(FormatTransfer.toLH(f));
    return result;
  }

  }


来源:http://www.tulaoshi.com/n/20160219/1621176.html

延伸阅读
基本运算符和表达式 运算符的种类、优先级和结合性 C语言中运算符和表达式数量之多, 在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。 这也是C语言的主要特点之一。 C语言的运算符不仅具有不同的优先级, 而且还有一个特点,就是它的结合性。在表达式中, 各运算量参与运算的先后顺序...
Java 语言有着与C语言类似的教强的数据处理能力,即它的数据类型和不同类型上的运算定义得较为齐全,Java内部的数据类型可以分为四大类:整数、浮点数、字符、布尔型。其中整数和浮点数两大类根据长度和精度的不同,还可以进一步划分为byte、int、short、long、float、和double几个具体的类型。具体可参看下表: Java的基本...
在VB中,提供了很多数据类型转换的函数,特别是各种进制数据的转换以及字符串和数字的转换函数,本文将对这些函数做一个简单的小结. 1. 各种进制转换函数 一般的数据进制包括十进制,二进制,十六进制.十进制就是我们日常生活用到的数据进制,因此也是我们最熟悉和清楚的;二进制是计算机的基础进制,主要是因为便于用物理器件实现二进制...
  我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,我们还经常用到两种类变量,即String和Date。对...
标签: ASP
ASP只有一种数据类型那就是"variant "。它是一种特殊的数据类型能够根据它的使用表示很多不同种类的信息。因为它是ASP中唯一的数据类型,它也是ASP中所有函数返回值的唯一类型。它很简单的,"variant"数据类型能够表示数字或者是字符串。当你在ASP程序中把它当做是数字,它就自动转化为"Numeric",如果用它为字符串,它也同样就是"String"了。也...

经验教程

332

收藏

69
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部