- 浏览: 143397 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (129)
- framework (18)
- Java (25)
- web2.0 (7)
- Oracle (23)
- 框架师 (20)
- design pattern (5)
- j2ee (6)
- 日常问题收集 (51)
- linux (12)
- Oralce优化 (4)
- life (3)
- sqlplus (1)
- sql (2)
- C# (4)
- mysql (9)
- 拿来主义 (12)
- 标签 (0)
- ThinkPHP (1)
- python (1)
- mybatis (2)
- html5 (1)
- jquery (2)
- hadoop (3)
- git (1)
- struts2 (1)
- shiro (1)
- struts (1)
最新评论
-
xiao88xian:
...
jQuery常用经典技巧
开发问题收集
package com.util; /** * * <ul> * <li>文件名称: com.born.util.ByteUtil.java</li> * <li>文件描述: byte转换工具</li> * <li>版权所有: 版权所有(C)2001-2006</li> * <li>公 司: bran</li> * <li>内容摘要:</li> * <li>其他说明:</li> * <li>完成日期:2011-7-18</li> * <li>修改记录0:无</li> * </ul> * * @version 1.0 * @author 许力多 */ public class ByteUtil { /** * 转换short为byte * * @param b * @param s * 需要转换的short * @param index */ public static void putShort(byte b[], short s, int index) { b[index + 1] = (byte) (s >> 8); b[index + 0] = (byte) (s >> 0); } /** * 通过byte数组取到short * * @param b * @param index * 第几位开始取 * @return */ public static short getShort(byte[] b, int index) { return (short) (((b[index + 1] << 8) | b[index + 0] & 0xff)); } /** * 转换int为byte数组 * * @param bb * @param x * @param index */ public static void putInt(byte[] bb, int x, int index) { bb[index + 3] = (byte) (x >> 24); bb[index + 2] = (byte) (x >> 16); bb[index + 1] = (byte) (x >> 8); bb[index + 0] = (byte) (x >> 0); } /** * 通过byte数组取到int * * @param bb * @param index * 第几位开始 * @return */ public static int getInt(byte[] bb, int index) { return (int) ((((bb[index + 3] & 0xff) << 24) | ((bb[index + 2] & 0xff) << 16) | ((bb[index + 1] & 0xff) << 8) | ((bb[index + 0] & 0xff) << 0))); } /** * 转换long型为byte数组 * * @param bb * @param x * @param index */ public static void putLong(byte[] bb, long x, int index) { bb[index + 7] = (byte) (x >> 56); bb[index + 6] = (byte) (x >> 48); bb[index + 5] = (byte) (x >> 40); bb[index + 4] = (byte) (x >> 32); bb[index + 3] = (byte) (x >> 24); bb[index + 2] = (byte) (x >> 16); bb[index + 1] = (byte) (x >> 8); bb[index + 0] = (byte) (x >> 0); } /** * 通过byte数组取到long * * @param bb * @param index * @return */ public static long getLong(byte[] bb, int index) { return ((((long) bb[index + 7] & 0xff) << 56) | (((long) bb[index + 6] & 0xff) << 48) | (((long) bb[index + 5] & 0xff) << 40) | (((long) bb[index + 4] & 0xff) << 32) | (((long) bb[index + 3] & 0xff) << 24) | (((long) bb[index + 2] & 0xff) << 16) | (((long) bb[index + 1] & 0xff) << 8) | (((long) bb[index + 0] & 0xff) << 0)); } /** * 字符到字节转换 * * @param ch * @return */ public static void putChar(byte[] bb, char ch, int index) { int temp = (int) ch; // byte[] b = new byte[2]; for (int i = 0; i < 2; i ++ ) { bb[index + i] = new Integer(temp & 0xff).byteValue(); // 将最高位保存在最低位 temp = temp >> 8; // 向右移8位 } } /** * 字节到字符转换 * * @param b * @return */ public static char getChar(byte[] b, int index) { int s = 0; if (b[index + 1] > 0) s += b[index + 1]; else s += 256 + b[index + 0]; s *= 256; if (b[index + 0] > 0) s += b[index + 1]; else s += 256 + b[index + 0]; char ch = (char) s; return ch; } /** * float转换byte * * @param bb * @param x * @param index */ public static void putFloat(byte[] bb, float x, int index) { // byte[] b = new byte[4]; int l = Float.floatToIntBits(x); for (int i = 0; i < 4; i++) { bb[index + i] = new Integer(l).byteValue(); l = l >> 8; } } /** * 通过byte数组取得float * * @param bb * @param index * @return */ public static float getFloat(byte[] b, int index) { int l; l = b[index + 0]; l &= 0xff; l |= ((long) b[index + 1] << 8); l &= 0xffff; l |= ((long) b[index + 2] << 16); l &= 0xffffff; l |= ((long) b[index + 3] << 24); return Float.intBitsToFloat(l); } /** * double转换byte * * @param bb * @param x * @param index */ public static void putDouble(byte[] bb, double x, int index) { // byte[] b = new byte[8]; long l = Double.doubleToLongBits(x); for (int i = 0; i < 4; i++) { bb[index + i] = new Long(l).byteValue(); l = l >> 8; } } /** * 通过byte数组取得float * * @param bb * @param index * @return */ public static double getDouble(byte[] b, int index) { long l; l = b[0]; l &= 0xff; l |= ((long) b[1] << 8); l &= 0xffff; l |= ((long) b[2] << 16); l &= 0xffffff; l |= ((long) b[3] << 24); l &= 0xffffffffl; l |= ((long) b[4] << 32); l &= 0xffffffffffl; l |= ((long) b[5] << 40); l &= 0xffffffffffffl; l |= ((long) b[6] << 48); l &= 0xffffffffffffffl; l |= ((long) b[7] << 56); return Double.longBitsToDouble(l); } }
public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b * byte * @return convert result */ public static int unsignedByteToInt(byte b) { return (int) b & 0xFF; } /** * 将一个单字节的Byte转换成十六进制的数 * * @param b * byte * @return convert result */ public static String byteToHex(byte b) { int i = b & 0xFF; return Integer.toHexString(i); } /** * 将一个4byte的数组转换成32位的int * * @param buf * bytes buffer * @param byte[]中开始转换的位置 * @return convert result */ public static long unsigned4BytesToInt(byte[] buf, int pos) { int firstByte = 0; int secondByte = 0; int thirdByte = 0; int fourthByte = 0; int index = pos; firstByte = (0x000000FF & ((int) buf[index])); secondByte = (0x000000FF & ((int) buf[index + 1])); thirdByte = (0x000000FF & ((int) buf[index + 2])); fourthByte = (0x000000FF & ((int) buf[index + 3])); index = index + 4; return ((long) (firstByte << 24 | secondByte << 16 | thirdByte << 8 | fourthByte)) & 0xFFFFFFFFL; } /** * 将16位的short转换成byte数组 * * @param s * short * @return byte[] 长度为2 * */ public static byte[] shortToByteArray(short s) { byte[] targets = new byte[2]; for (int i = 0; i < 2; i++) { int offset = (targets.length - 1 - i) * 8; targets[i] = (byte) ((s >>> offset) & 0xff); } return targets; } /** * 将32位整数转换成长度为4的byte数组 * * @param s * int * @return byte[] * */ public static byte[] intToByteArray(int s) { byte[] targets = new byte[2]; for (int i = 0; i < 4; i++) { int offset = (targets.length - 1 - i) * 8; targets[i] = (byte) ((s >>> offset) & 0xff); } return targets; } /** * long to byte[] * * @param s * long * @return byte[] * */ public static byte[] longToByteArray(long s) { byte[] targets = new byte[2]; for (int i = 0; i < 8; i++) { int offset = (targets.length - 1 - i) * 8; targets[i] = (byte) ((s >>> offset) & 0xff); } return targets; } /**32位int转byte[]*/ public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xff);// 最低位 targets[1] = (byte) ((res >> 8) & 0xff);// 次低位 targets[2] = (byte) ((res >> 16) & 0xff);// 次高位 targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。 return targets; } /** * 将长度为2的byte数组转换为16位int * * @param res * byte[] * @return int * */ public static int byte2int(byte[] res) { // res = InversionByte(res); // 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000 int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00); // | 表示安位或 return targets; } }
发表评论
-
Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
2014-08-06 16:26 829from :http://blog.csdn.net/idb ... -
org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessi
2014-01-16 10:16 1734关于shiro错误的分析错误提示: org.apache. ... -
在windows下配置hadoop-eclipse插件,并连接虚拟机的hadoop集群
2013-08-19 15:51 1019在windows下配置hadoop-eclipse插件,并连 ... -
如何禁止浏览器自动完成(Turn Off auto text complete)
2013-08-09 11:26 1369关于如何禁止浏览器自动完成功能,大概有两种方式,第一种是通过 ... -
Maven乱码问题解决
2013-08-07 17:22 814本文转载自: http:/ ... -
Git SSH Key 生成步骤
2013-08-03 21:38 776git是分布式的代码管理工具,远程的代码管理是基于ssh的, ... -
Public key for *.rpm is not installed
2013-08-03 13:10 812>[root@RedHat mnt]# cd /opt ... -
更新你的OEL
2013-08-03 13:01 931windows下有自动更新的功能,linux下也有,对应的RH ... -
Linux下Mysql的配置
2013-08-03 12:53 622安装 rmp -ivh MySQL-server-4.1. ... -
如何设置Mysql允许局域网或外部连接的方法
2013-08-02 14:54 1682如何设置Mysql允许局域网或外部连接的方法 在linux ... -
Virtual Box虚拟机host-only 方式联网
2013-07-29 20:41 8501.需要讲本地的外网网络共享打开 2.查看VirtualB ... -
hadoop中datanode无法启动
2013-07-21 18:47 1487多日无暇学习使用Hadoop了,今天在练习安装使用Hive的 ... -
使用OSCache实现页面的缓存,优化性能
2013-07-10 14:21 1048使用OSCache实现页面的缓存,优化性能 OSC ... -
查找附近点--Geohash方案讨论
2013-06-06 09:27 1302基础数据中,一般保存了目标位置的经纬度;利用用户提供的经纬度 ... -
LBS附近地点搜索算法资料集合
2013-06-06 09:18 877方法一:基于球面距离搜索附近地点 附近地点搜索初探 ... -
geohash算法原理及实现方式
2013-06-05 09:53 1852geohash算法原理及实现方式 1、geohas ... -
附近地点搜索初探
2013-06-05 09:19 726FROM:http://tech.idv2.com/201 ... -
MyBatis延迟加载
2013-05-26 20:15 843当你要使用one to one,many to one 就 ... -
我的gVim配置备份
2013-05-11 16:03 1274if(has("win32") || h ... -
tomcat虚拟路径的几种配置方法
2013-04-23 10:18 943摘自:http://dolphin-ygj.javaeye. ...
相关推荐
本文将深入探讨如何在Java中将byte数组与其他基本类型(如short、int、long)进行转换,这些转换在处理二进制数据、网络通信或序列化等方面至关重要。 首先,我们来看byte数组与short之间的转换。在Java中,byte...
Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short 类型是 16 位的整数类型,而 byte 数组是...
本文将详细介绍如何在Java中将`byte`数组与其他基本数据类型(如`int`、`long`、`short`、`byte`)之间进行转换。 首先,我们来看`byte`到`int`的转换。Java中的`byte`类型是8位的,取值范围是-128到127。如果要将...
例如,我们可以将byte数组转换为short类型、int类型、long类型、float类型、double类型、char类型等。这种转换可以使用相应的构造函数或方法来实现。 在Java编程中,将基本类型转换为byte数组或将byte数组转换为...
ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...
在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等场景下。下面将详细介绍如何进行这些...
char short int long float double 转换成byte数组
Java 中的基本类型包括 boolean、byte、char、short、int、long、float 和 double 等。这些基本类型可以相互转换,例如将 short 类型转换成 byte 数组、int 类型转换成 byte 数组等。 在 Java 中,基本类型可以...
在Java中,整数可以分为多种类型,如int、long、short等,每种类型都有其对应的byte数组长度。例如,int类型的整数可以转换为4字节的byte数组,而long类型的整数可以转换为8字节的byte数组。 在上面的代码中,我们...
在 Java 中,将对象转换为 byte 数组是一种常见的操作,特别是在使用 Netty 进行通信协议传输的场景中。那么,如何方便地将一个 Java 对象构造成一个 byte 数组呢? 方法 1:使用 ByteBuf 在 Netty 中,我们可以...
原始类型包括整型(如byte、short、int、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean)。这些类型的数据可以直接在内存中存储值,而无需创建对象。然而,在某些场景下,我们可能需要将...
有时在处理数据时,我们需要将这些基本类型与字节数组(byte arrays)进行转换,特别是在网络通信、文件存储或序列化等场景中。下面我们将详细介绍如何在Java中进行这种转换。 首先,我们要理解字节在计算机内存中...
### 二、byte数组转换为int类型 #### 方法:byteToInt() 此方法接收一个byte数组作为参数,并将其转换回int类型。 ```java public static int byteToInt(byte[] b) { int s = 0; for (int i = 0; i ; i++) { if ...
Java提供了八种基本数据类型来表示数字,这些包括:byte、short、int、long、float、double、boolean和char。尽管这些基本数据类型在性能上有所优势,但在某些情况下,我们需要以对象的形式操作这些数字,比如在集合...
byte数组转换为int 保留几位小数 null转String String转Byte String转Boolean String转Int String转Short String转Double Int转String Double转Long Double转Int Long转Double Long转Int String转Long Long转String
字节转换什么事啊您是否曾经想过通过I2C,SPI,串行或其他协议或总线传输int , short , long , double或任何其他数字类型,但是您已将变量转换为字符串以能够按char进行传输。 该库使您可以将任何数值转换为字节...
举例分析 equals 和 hashcode 方法,hashcode应该怎么样生成 8个基本类型与基本对象的比较:byte与Byte shot与Short int与Integer long与Long float与Float double与Double char与Character
在 Java 中,基本类型可以按精度从“低”到“高”排列:byte、short、char、int、long、float、double。低精度赋值给高精度数据类型时,系统自动完成数据类型转换,但高精度赋值给低精度需要使用类型转换运行,例如...
原始数据类型包括byte、short、int、long、float、double、char和boolean,而引用数据类型则包括类(class)、接口(interface)和数组。在处理数值计算时,我们可能需要在不同数据类型之间进行转换,特别是当涉及到long...