Java 数据类型转换(转换成字节型)
- package com.mystudypro.byteutil;
- import java.io.UnsupportedEncodingException;
public class ConToByte {- /**
- * double转换byte
- * @param arr byte[]
- * @param param double double类型的参数
- * @param index int
- */
- public static void putDouble(byte[] arr, double param, int index) {
int len = (index - 1) + 8;- int arrLen = arr.length;
- boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
- Long l = Double.doubleToLongBits(param);
- if (b) {
- for (int i = 7; i >=0; i--) {
- arr[index + i] = l.byteValue();
- l = l >> 8;
- }
- } else {
- // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
- l = l>>(8*index);
- for(int j= arrLen-index-1;j>=0;j--){
- arr[index+j] = l.byteValue();
- l = l>>8;
- }
- }
- }
- /**
- * float转换byte
- *
- * @param arr byte[]
- * @param param float float类型的参数
- * @param index int
- */
- public static void putFloat(byte[] arr, float param, int index) {
- int len = (index - 1) + 4;
- int arrLen = arr.length;
- boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
- int l = Float.floatToIntBits(param);
- if (b) {
- for (int i = 3; i >=0; i--) {
- arr[index + i] = new Integer(l).byteValue();
- l = l >> 8;
- }
- } else {
- // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
- l = l>>(8*index);
- for(int j=arrLen-index-1;j>=0;j--){
- arr[index+j] = new Integer(l).byteValue();
- l =l>>8;
- }
- }
- }
- /**
- * 字符到字节转换
- *
- * @param arr byte[]
- * @param ch char char类型的参数
- * @param index int
- * @return
- */
- public static void putChar(byte[] arr, char ch, int index) {
- int len = (index - 1) + 4;
- boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
- if (b) {
- int temp = (int) ch;
- for (int i = 1; i >=0; i--) {
- arr[index + i] = new Integer(temp & 0xff).byteValue();
- temp = temp >> 8;
- }
- }
- }
- /**
- * 转换long型为byte数组
- *
- * @param arr byte[]
- * @param param long
- * @param index int
- */
- public static void putLong(byte[] arr, long param, int index) {
- int len = (index - 1) + 8;
- int arrLen = arr.length;
- boolean b = isOutOfArrLength(arrLen, len); //判断当前数组长度是否大于转换的数组长度
- if (b) {
- arr[index + 0] = (byte) ((param >> 56) & 0xff);
- arr[index + 1] = (byte) ((param >> 48) & 0xff);
- arr[index + 2] = (byte) ((param >> 40) & 0xff);
- arr[index + 3] = (byte) ((param >> 32) & 0xff);
- arr[index + 4] = (byte) ((param >> 24) & 0xff);
- arr[index + 5] = (byte) ((param >> 16) & 0xff);
- arr[index + 6] = (byte) ((param >> 8) & 0xff);
- arr[index + 7] = (byte) (param & 0xff);
- } else {
- // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素
- param = param >> (8*index);
- for(int i=arrLen-index-1;i>=0;i--){
- arr[index+i] = (byte) (param & 0xff);
- param = param >> 8;
- }
- }
- }
- /**
- * int类型转换成byte数组
- *
- * @param arr byte[]
- * @param param int int类型的参数
- * @param index int
- */
- public static void putInt(byte[] arr, int param, int index) {
- int len = (index - 1) + 4;
- boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
- if (b) {
- arr[index + 0] = (byte) ((param >> 24) & 0xff);
- arr[index + 1] = (byte) ((param >> 16) & 0xff);
- arr[index + 2] = (byte) ((param >> 8) & 0xff);
- arr[index + 3] = (byte) (param & 0xff);
- }
- }
- /**
- * short类型转换成byte数组
- *
- * @param arr byte[]
- * @param param short
- * @param index int
- */
- public static void putShort(byte[] arr, short param, int index) {
- int len = (index - 1) + 2;
- boolean b = isOutOfArrLength(arr.length, len); //判断当前数组长度是否大于转换的数组长度
- if (b) {
- arr[index + 0] = (byte) ((param >> 8) & 0xff);
- arr[index + 1] = (byte) (param & 0xff);
- }
- }
- /**
- * 字符串转换成byte数组
- *
- * @param arr byte[]
- * @param str String
- * @param index int
- * @throws java.io.UnsupportedEncodingException
- */
- public static void putString(byte[] arr, String str, int index) {
- try {
- byte[] bb = str.getBytes("GBK");
- int len = index + bb.length;
- boolean b = isOutOfArrLength(arr.length, len);
- if (b) {
- for (int i = 0; i < bb.length; i++) {
- arr[index + i] = bb[i];
- }
- } else {
// 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素- for(int j=0;j<arr.length-index;j++){
- arr[index+j] = bb[j];
- }
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- }
- /**
- * 判断数组下标是否越界
- *
- * @param arrLength
- * 数组总长度
- * @param index
- * 数组偏移量
- * @return
- */
- public static boolean isOutOfArrLength(int arrLength, int index) {
- boolean b;
- if (arrLength > index) {
- b = true;
- } else {
- b = false;
- }
- return b;
- }
- }
Java 数据类型转换(转换成字节型)的更多相关文章
- java中,字符串类型的时间数据怎样转换成date类型。
将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...
- Java数据类型转换1
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- Java数据类型转换浅析
Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...
- JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换
1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...
- android112 jni 把java的字符串转换成c的字符串,数组处理
package com.itheima.charencode; import android.os.Bundle; import android.app.Activity; import androi ...
- 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)
转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...
- JSON与JAVA数据的转换-----从3,23到现在5.25才过去2个月,感觉时间过得那么漫长
从3月23号去报到,期间经历了清明节,毕业论文答辩,从万达搬到东兴,五一节,毕业照,从东兴的一边搬到另外一个房间中去 2个月的时间过得如此的快啊!白驹过隙! 不要着急,不要和别人比,小龙哥写过3年代码 ...
- sql 将8位字符串转换成日期型
将8位字符串转换成日期型,方法如下: ),)
随机推荐
- 【RabbitMQ】 Routing
Routing 之前的章节里我们构建了一个简单的日志系统.我们可以广播所有的日志消息给所有的接收端. 本节我们将给它添加一个新特性 - 我们将允许只订阅一个消息的子集.例如,我们只将关键的错误消息定位 ...
- ThinkPHP 3.2 模板使用函数
{$name|md5|strtoupper|substr=0,3} 编译后的结果是: <?php echo (substr(strtoupper(md5($name)),0,3));?> ...
- Unity问答——请教一下NGUI的图片转换问题
这篇博客源自我在泰课在线的回答.链接:http://www.taikr.com/group/1/thread/92 问:请教一下NGUI的图片转换问题 1.NGUI能不能把导入的方形图片转成圆形的(因 ...
- (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误
(org.hibernate.LazyInitializationException:19) - could not initialize proxy错误 在刚插入数据后,马上使用dao进行query ...
- animate基础
用JQUERY做动画是很方便的,已经看过大牛们做出不逊色于FLASH的各种效果. 其中的基本功就有animate这个方法的使用.于是,从零开始,训练基本功: <body> <div ...
- Com进程通信(有详细步骤)
http://www.cnblogs.com/FKdelphi/p/5772950.html
- Qt for Mac:发布程序(widgets和quick2)
当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...
- JS实现点击按钮,自增输入框个数
<html> <head> <script language="javascript"> var i=0; function addinput( ...
- 【算法Everyday】第三日 KMP算法
题目 你知道的. 分析 分析不来. 代码 void OutputArray(int* pArr, int iLen) { ; i < iLen; i++) { printf("%d\t ...
- hg 证书验证失败
hg clone https://bitbucket.org/pygame/pygame 出现abort: error: _ssl.c:504: error:14090086:SSL routines ...