广告
返回顶部
首页 > 资讯 > 移动开发 >android byte[] 和short[]转换的方法代码
  • 309
分享到

android byte[] 和short[]转换的方法代码

shortbyte方法Android 2022-06-06 10:06:14 309人浏览 薄情痞子
摘要

1,工具代码 代码如下:public class BytesTransUtil {  private String TAG = "BytesTransUtil";&n

1,工具代码
代码如下:
public class BytesTransUtil {

 private String TAG = "BytesTransUtil";
 private static BytesTransUtil instance = null;

 private BytesTransUtil() {
  // Log.i(TAG, "instance BytesTransUtil");
 }

 public static BytesTransUtil getInstance() {
  if (instance == null) {
   instance = new BytesTransUtil();
  }
  return instance;
 }

 public boolean testcpU() {
  if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
   // System.out.println("is big ending");
   return true;
  } else {
   // System.out.println("is little ending");
   return false;
  }
 }

 public byte[] getBytes(short s, boolean bBigEnding) {
  byte[] buf = new byte[2];
  if (bBigEnding)
   for (int i = buf.length - 1; i >= 0; i--) {
    buf[i] = (byte) (s & 0x00ff);
    s >>= 8;
   }
  else
   for (int i = 0; i < buf.length; i++) {
    buf[i] = (byte) (s & 0x00ff);
    s >>= 8;
   }
  return buf;
 }

 public byte[] getBytes(int s, boolean bBigEnding) {
  byte[] buf = new byte[4];
  if (bBigEnding) {
   for (int i = buf.length - 1; i >= 0; i--) {
    buf[i] = (byte) (s & 0x000000ff);
    s >>= 8;
   }
  } else {
   System.out.println("1");
   for (int i = 0; i < buf.length; i++) {
    buf[i] = (byte) (s & 0x000000ff);
    s >>= 8;
   }
  }
  return buf;
 }

 public byte[] getBytes(long s, boolean bBigEnding) {
  byte[] buf = new byte[8];
  if (bBigEnding)
   for (int i = buf.length - 1; i >= 0; i--) {
    buf[i] = (byte) (s & 0x00000000000000ff);
    s >>= 8;
   }
  else
   for (int i = 0; i < buf.length; i++) {
    buf[i] = (byte) (s & 0x00000000000000ff);
    s >>= 8;
   }
  return buf;
 }

 public short getShort(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 2) {
   throw new IllegalArgumentException("byte array size > 2 !");
  }
  short r = 0;
  if (bBigEnding) {
   for (int i = 0; i < buf.length; i++) {
    r <<= 8;
    r |= (buf[i] & 0x00ff);
   }
  } else {
   for (int i = buf.length - 1; i >= 0; i--) {
    r <<= 8;
    r |= (buf[i] & 0x00ff);
   }
  }

  return r;
 }

 public int getInt(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 4) {
   throw new IllegalArgumentException("byte array size > 4 !");
  }
  int r = 0;
  if (bBigEnding) {
   for (int i = 0; i < buf.length; i++) {
    r <<= 8;
    r |= (buf[i] & 0x000000ff);
   }
  } else {
   for (int i = buf.length - 1; i >= 0; i--) {
    r <<= 8;
    r |= (buf[i] & 0x000000ff);
   }
  }
  return r;
 }

 public long getLong(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 8) {
   throw new IllegalArgumentException("byte array size > 8 !");
  }
  long r = 0;
  if (bBigEnding) {
   for (int i = 0; i < buf.length; i++) {
    r <<= 8;
    r |= (buf[i] & 0x00000000000000ff);
   }
  } else {
   for (int i = buf.length - 1; i >= 0; i--) {
    r <<= 8;
    r |= (buf[i] & 0x00000000000000ff);
   }
  }
  return r;
 }

 
 
 
 public byte[] getBytes(int i) {
  return getBytes(i, this.testCPU());
 }

 public byte[] getBytes(short s) {
  return getBytes(s, this.testCPU());
 }

 public byte[] getBytes(long l) {
  return getBytes(l, this.testCPU());
 }

 public int getInt(byte[] buf) {
  return getInt(buf, this.testCPU());
 }

 public short getShort(byte[] buf) {
  return getShort(buf, this.testCPU());
 }

 public long getLong(byte[] buf) {
  return getLong(buf, this.testCPU());
 }

 
 public short[] Bytes2Shorts(byte[] buf) {
  byte bLength = 2;
  short[] s = new short[buf.length / bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = new byte[bLength];
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    temp[jLoop] = buf[iLoop * bLength + jLoop];
   }
   s[iLoop] = getShort(temp);
  }
  return s;
 }

 public byte[] Shorts2Bytes(short[] s) {
  byte bLength = 2;
  byte[] buf = new byte[s.length * bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = getBytes(s[iLoop]);
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    buf[iLoop * bLength + jLoop] = temp[jLoop];
   }
  }
  return buf;
 }

 
 public int[] Bytes2Ints(byte[] buf) {
  byte bLength = 4;
  int[] s = new int[buf.length / bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = new byte[bLength];
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    temp[jLoop] = buf[iLoop * bLength + jLoop];
   }
   s[iLoop] = getInt(temp);
   System.out.println("2out->"+s[iLoop]);
  }
  return s;
 }

 public byte[] Ints2Bytes(int[] s) {
  byte bLength = 4;
  byte[] buf = new byte[s.length * bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = getBytes(s[iLoop]);
   System.out.println("1out->"+s[iLoop]);
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    buf[iLoop * bLength + jLoop] = temp[jLoop];
   }
  }
  return buf;
 }

 
 public long[] Bytes2Longs(byte[] buf) {
  byte bLength = 8;
  long[] s = new long[buf.length / bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = new byte[bLength];
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    temp[jLoop] = buf[iLoop * bLength + jLoop];
   }
   s[iLoop] = getLong(temp);
  }
  return s;
 }

 public byte[] Longs2Bytes(long[] s) {
  byte bLength = 8;
  byte[] buf = new byte[s.length * bLength];
  for (int iLoop = 0; iLoop < s.length; iLoop++) {
   byte[] temp = getBytes(s[iLoop]);
   for (int jLoop = 0; jLoop < bLength; jLoop++) {
    buf[iLoop * bLength + jLoop] = temp[jLoop];
   }
  }
  return buf;
 }

}

2,测试代码
代码如下:
public class main {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //简单测试了short[] 转byte[],其他类似;
  BytesTransUtil bytesTransUtil = BytesTransUtil.getInstance();
  int[] sTest = { 12345678, 87654321 };
  byte[] byteShort = bytesTransUtil.Ints2Bytes(sTest);
  int[] sTemp = bytesTransUtil.Bytes2Ints(byteShort);
  System.out.println("short[0] = " + sTemp[0] + "   short[1] = " + sTemp[1]);
 }
}


--结束END--

本文标题: android byte[] 和short[]转换的方法代码

本文链接: https://www.lsjlt.com/news/27277.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android byte[] 和short[]转换的方法代码
    1,工具代码 代码如下:public class BytesTransUtil {  private String TAG = "BytesTransUtil";&n...
    99+
    2022-06-06
    short byte 方法 Android
  • C# Byte数组转换String的方法
    本篇内容主要讲解“C# Byte数组转换String的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C# Byte数组转换String的方法”吧!C#编程过程中将Byte数组转换String...
    99+
    2023-06-17
  • java整数与byte数组的转换实现代码
    java整数与byte数组的转换实现代码           这里对java中整数与byte数组的转换进行了实现,平时的项目中很少...
    99+
    2023-05-31
    java 整数 byte数组
  • java的Array,List和byte[],String相互转换的方法你了解嘛
    目录1.Array转List,通过java.util.Arrays.asList(T... a)参数是可变泛型参数2.List转Array用.toArray(T[] a)3.Stri...
    99+
    2022-11-13
  • Android Bitmap和Drawable相互转换的简单代码
      很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。下面Android123给大家两种比较简单高效的方法。   一、Bitmap转Draw...
    99+
    2022-06-06
    bitmap Android
  • Java中字符串与byte数组之间的转换方法
    在Java编程中,我们常常需要对字符串和byte数组进行转换。字符串一般是用来表示文本信息,而byte数组则是用来表示二进制数据,如图片、音频等。本文将详细介绍Java中字符串和byte数组之间的转换方法,包括将字符串转换为byte数组和将...
    99+
    2023-08-18
    java 数据结构 前端
  • ascii码转换的方法
    小编给大家分享一下ascii码转换的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ascii码的转换方法:1、使用【chr()】函数转换,代码为【>&g...
    99+
    2023-06-06
  • Android中URL转换成二维码的实现方法
    这篇文章主要讲解了Android中URL转换成二维码的实现方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。二维码已经成为我们日常生活中的一个不可获取的产物,火车票上,景区门票,超市付款等等都会有二维码的身影。...
    99+
    2023-05-31
    url roi %d
  • Python进制转换和ASCLL转换的方法
    这篇文章主要介绍“Python进制转换和ASCLL转换的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python进制转换和ASCLL转换的方法”文章能帮助大家解决问题。进制转换进制之间的转换主...
    99+
    2023-06-29
  • python常见进制转换方法示例代码
    目录1. 标准进制转换2. 任意进制间的转换补充总结1. 标准进制转换 其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串...
    99+
    2023-05-18
    python 进制转换 python如何进制转换 python中的进制转换
  • Apache Calcite 实现方言转换的代码
    定义 Calcite能够通过解析Sql为SqlNode,再将SqlNode转化为特定数据库的方言的形式实现Sql的统一。 实现 在Calcite中实现方言转换的主要类是SqlDialect基类,其具体的变量含义如下: ...
    99+
    2022-06-04
    Apache Calcite方言转换 Apache Calcite
  • torch.utils.data.DataLoader与迭代器转换的方法
    这篇文章主要介绍“torch.utils.data.DataLoader与迭代器转换的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“torch.utils.data.DataLoader与迭代器...
    99+
    2023-06-29
  • 基于Android中dp和px之间进行转换的实现代码
    在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很...
    99+
    2022-06-06
    dp px Android
  • php字符串转换编码的方法
    这篇“php字符串转换编码的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php字符串转换编码的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起...
    99+
    2023-06-06
  • vbs实现unicode和ascii编码转换的方法教程
    本篇内容主要讲解“vbs实现unicode和ascii编码转换的方法教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vbs实现unicode和ascii编码转换的方法教程”吧!一、Copy a...
    99+
    2023-06-08
  • 【python】代码换行的几种方法
    代码太长怎么办,反斜杠\引号""" ‘’'来帮忙! 在写list或者较长的字符串时候,或者多个循环造成IDE不够用时,就需要代码换行了。主要的代码换行有通用的反斜杠\和针对字符串起作用的三引号结构。 1.反斜杠 对于一般表达式...
    99+
    2023-01-31
    换行 几种方法 代码
  • PHP跳转代码的实现方法
    这篇文章主要讲解了“PHP跳转代码的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP跳转代码的实现方法”吧!PHP跳转代码默认文档设置1 :< php ...
    99+
    2023-06-17
  • javascript对url进行编码转换的方法
    这篇文章将为大家详细讲解有关javascript对url进行编码转换的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript对url进行编码转换的方法:1、使用encodeURI()函数,...
    99+
    2023-06-14
  • Golang中ASCII码转换的方法有哪些
    本篇内容介绍了“Golang中ASCII码转换的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、ASCII码的介绍ASCII码是...
    99+
    2023-07-05
  • Tensor和NumPy相互转换的方法
    目录Tensor转NumPyNumPy数组转 Tensor我们很容易用 numpy() 和 from_numpy() 将 Tensor 和NumPy中的数组相互转换。 但是需要注意的...
    99+
    2023-03-19
    Tensor和NumPy相互转换 Tensor NumPy 转换
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作