1. package com.mystudypro.byteutil;
  2. import java.io.UnsupportedEncodingException;

  3. public class ConToByte {
  4. /**
  5. * double转换byte
  6. * @param arr byte[]
  7. * @param param double double类型的参数
  8. * @param index int
  9. */
  10.  
  11. public static void putDouble(byte[] arr, double param, int index) {

  12. int len = (index - 1) + 8;
  13. int arrLen = arr.length;
  14. boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
  15. Long l = Double.doubleToLongBits(param);
  16. if (b) {
  17. for (int i = 7; i >=0; i--) {
  18.   arr[index + i] = l.byteValue();
  19.   l = l >> 8;
  20. }
  21. } else {
  22. // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
  23. l = l>>(8*index);
  24. for(int j= arrLen-index-1;j>=0;j--){
  25. arr[index+j] = l.byteValue();
  26. l = l>>8;
  27. }
  28. }
  29. }
  30.  
  31. /**
  32. * float转换byte
  33. *
  34. * @param arr byte[]
  35. * @param param float float类型的参数
  36. * @param index int
  37. */
  38.  
  39. public static void putFloat(byte[] arr, float param, int index) {
  40. int len = (index - 1) + 4;
  41. int arrLen = arr.length;
  42. boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
  43. int l = Float.floatToIntBits(param);
  44. if (b) {
  45. for (int i = 3; i >=0; i--) {
  46. arr[index + i] = new Integer(l).byteValue();
  47. l = l >> 8;
  48. }
  49. } else {
  50. // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
  51. l = l>>(8*index);
  52. for(int j=arrLen-index-1;j>=0;j--){
  53. arr[index+j] = new Integer(l).byteValue();
  54. l =l>>8;
  55. }
  56. }
  57. }
  58.  
  59. /**
  60. * 字符到字节转换
  61. *
  62. * @param arr byte[]
  63. * @param ch char char类型的参数
  64. * @param index int
  65. * @return
  66. */
  67.  
  68. public static void putChar(byte[] arr, char ch, int index) {
  69. int len = (index - 1) + 4;
  70. boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
  71. if (b) {
  72. int temp = (int) ch;
  73. for (int i = 1; i >=0; i--) {
  74. arr[index + i] = new Integer(temp & 0xff).byteValue();
  75. temp = temp >> 8;
  76. }
  77. }
  78. }
  79.  
  80. /**
  81. * 转换long型为byte数组
  82. *
  83. * @param arr byte[]
  84. * @param param long
  85. * @param index int
  86. */
  87.  
  88. public static void putLong(byte[] arr, long param, int index) {
  89. int len = (index - 1) + 8;
  90. int arrLen = arr.length;
  91. boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
  92. if (b) {
  93. arr[index + 0] = (byte) ((param >> 56) & 0xff);
  94. arr[index + 1] = (byte) ((param >> 48) & 0xff);
  95. arr[index + 2] = (byte) ((param >> 40) & 0xff);
  96. arr[index + 3] = (byte) ((param >> 32) & 0xff);
  97. arr[index + 4] = (byte) ((param >> 24) & 0xff);
  98. arr[index + 5] = (byte) ((param >> 16) & 0xff);
  99. arr[index + 6] = (byte) ((param >> 8) & 0xff);
  100. arr[index + 7] = (byte) (param & 0xff);
  101. } else {
  102. // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
  103. param = param >> (8*index);
  104. for(int i=arrLen-index-1;i>=0;i--){
  105. arr[index+i] = (byte) (param & 0xff);
  106. param = param >> 8;
  107. }
  108. }
  109. }
  110.  
  111. /**
  112. * int类型转换成byte数组
  113. *
  114. * @param arr byte[]
  115. * @param param int int类型的参数
  116. * @param index int
  117. */
  118.  
  119. public static void putInt(byte[] arr, int param, int index) {
  120. int len = (index - 1) + 4;
  121. boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
  122. if (b) {
  123. arr[index + 0] = (byte) ((param >> 24) & 0xff);
  124. arr[index + 1] = (byte) ((param >> 16) & 0xff);
  125. arr[index + 2] = (byte) ((param >> 8) & 0xff);
  126. arr[index + 3] = (byte) (param & 0xff);
  127. }
  128. }
  129.  
  130. /**
  131. * short类型转换成byte数组
  132. *
  133. * @param arr byte[]
  134. * @param param short
  135. * @param index int
  136. */
  137.  
  138. public static void putShort(byte[] arr, short param, int index) {
  139. int len = (index - 1) + 2;
  140. boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
  141. if (b) {
  142. arr[index + 0] = (byte) ((param >> 8) & 0xff);
  143. arr[index + 1] = (byte) (param & 0xff);
  144. }
  145. }
  146.  
  147. /**
  148. * 字符串转换成byte数组
  149. *
  150. * @param arr byte[]
  151. * @param str String
  152. * @param index int
  153. * @throws java.io.UnsupportedEncodingException
  154. */
  155.  
  156. public static void putString(byte[] arr, String str, int index) {
  157. try {
  158. byte[] bb = str.getBytes("GBK");
  159. int len = index + bb.length;
  160. boolean b = isOutOfArrLength(arr.length, len);
  161. if (b) {
  162. for (int i = 0; i < bb.length; i++) {
  163. arr[index + i] = bb[i];
  164. }
  165. } else {
    // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
  166.      for(int j=0;j<arr.length-index;j++){
  167. arr[index+j] = bb[j];
  168. }
  169. }
  170. } catch (UnsupportedEncodingException e) {
  171. e.printStackTrace();
  172. }
  173. }
  174.  
  175. /**
  176. * 判断数组下标是否越界
  177. *
  178. * @param arrLength
  179. * 数组总长度
  180. * @param index
  181. * 数组偏移量
  182. * @return
  183. */
  184.  
  185. public static boolean isOutOfArrLength(int arrLength, int index) {
  186. boolean b;
  187. if (arrLength > index) {
  188. b = true;
  189. } else {
  190. b = false;
  191. }
  192. return b;
  193. }
  194. }

Java 数据类型转换(转换成字节型)的更多相关文章

  1. java中,字符串类型的时间数据怎样转换成date类型。

    将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...

  2. Java数据类型转换1

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  3. Java数据类型转换浅析

    Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...

  4. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  5. JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换

    1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...

  6. android112 jni 把java的字符串转换成c的字符串,数组处理

    package com.itheima.charencode; import android.os.Bundle; import android.app.Activity; import androi ...

  7. 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...

  8. JSON与JAVA数据的转换-----从3,23到现在5.25才过去2个月,感觉时间过得那么漫长

    从3月23号去报到,期间经历了清明节,毕业论文答辩,从万达搬到东兴,五一节,毕业照,从东兴的一边搬到另外一个房间中去 2个月的时间过得如此的快啊!白驹过隙! 不要着急,不要和别人比,小龙哥写过3年代码 ...

  9. sql 将8位字符串转换成日期型

    将8位字符串转换成日期型,方法如下: ),)

随机推荐

  1. 【RabbitMQ】 Routing

    Routing 之前的章节里我们构建了一个简单的日志系统.我们可以广播所有的日志消息给所有的接收端. 本节我们将给它添加一个新特性 - 我们将允许只订阅一个消息的子集.例如,我们只将关键的错误消息定位 ...

  2. ThinkPHP 3.2 模板使用函数

    {$name|md5|strtoupper|substr=0,3} 编译后的结果是: <?php echo (substr(strtoupper(md5($name)),0,3));?> ...

  3. Unity问答——请教一下NGUI的图片转换问题

    这篇博客源自我在泰课在线的回答.链接:http://www.taikr.com/group/1/thread/92 问:请教一下NGUI的图片转换问题 1.NGUI能不能把导入的方形图片转成圆形的(因 ...

  4. (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误

    (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误 在刚插入数据后,马上使用dao进行query ...

  5. animate基础

    用JQUERY做动画是很方便的,已经看过大牛们做出不逊色于FLASH的各种效果. 其中的基本功就有animate这个方法的使用.于是,从零开始,训练基本功: <body> <div ...

  6. Com进程通信(有详细步骤)

    http://www.cnblogs.com/FKdelphi/p/5772950.html

  7. Qt for Mac:发布程序(widgets和quick2)

    当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...

  8. JS实现点击按钮,自增输入框个数

    <html> <head> <script language="javascript"> var i=0; function addinput( ...

  9. 【算法Everyday】第三日 KMP算法

    题目 你知道的. 分析 分析不来. 代码 void OutputArray(int* pArr, int iLen) { ; i < iLen; i++) { printf("%d\t ...

  10. hg 证书验证失败

    hg clone https://bitbucket.org/pygame/pygame 出现abort: error: _ssl.c:504: error:14090086:SSL routines ...