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 数据类型转换(转换成字节型)的更多相关文章

  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. Cow Exhibition

    poj2184:http://poj.org/problem?id=2184 题意:给你n头牛,每头牛有一个S值和一个F值,现在的问题是,要你选出其中的一些牛求出S+T的最大值.但是要保证总的s> ...

  2. Spring Framework Reference,Documentation,spring英文文档.pdf 官方文档

    直接上链接:http://files.cnblogs.com/files/kongkaikai/spring-framework-reference.pdf 官网链接:http://docs.spri ...

  3. 使用SSH代理上IPV6(使用SSH端口转发)

    这几个月在国外待着,一直担心我的六维账户怎么办,那可是个宝贝啊.我看网上说可以用六飞啊神马的在IPV6下上IPV6的网站,但是冒失现在六维封禁了非学校的IPV6地址,所以这些软件就不顶用了. 想到以前 ...

  4. struts2之防止表单重复提交

    struts.xml配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  5. Unity NGUI 创建简单的按钮

    Unity版本:4.5.1 NGUI版本:3.6.5 注意NGUI版本,网上的大部分教程都是2.x版本的,在步骤上面略有不同,此文适合初学者. 示例: 通过NGUI创建一个背景和按钮. 1.首先创建一 ...

  6. Linux企业级开发技术(6)——libevent企业级开发之内存管理

    默认情况下,libevent使用C库的内存管理函数在堆上分配内存.通过提供malloc.realloc和free的替代函数,可以让libevent使用其他的内存管理器.希望libevent使 用一个更 ...

  7. (转载)php数组删除元素各种方法总结

    (转载)http://www.111cn.net/phper/php/46865.htm 有很多朋友都不知道怎么把数组中元素给删除,下面我来总结各种数组删除元素方法给各位,有需要了解的朋友可进入参考. ...

  8. 快速傅里叶变换(FFT):COGS 2216. 你猜是不是KMP

    2216. 你猜是不是KMP ★★★☆   输入文件:guess.in   输出文件:guess.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] XX在玩两个串的游戏. ...

  9. Subsets —— LeetCode

    Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...

  10. MFC 显示CImg图片

    很多示例关于CImg都是基于控制台的,如何把它用于MFC中显示. Problem:直接按照控制台示例写入MFC程序中,当程序执行完display后,其后面的代码便不再执行. solution:开辟新的 ...