MathUtils
package com.yqw.java.util;
/**
* 数字转换工具
*/
public class MathUtils {
/**
* short转byte
*/
public static byte[] toBytes(short s)
{
return new byte[] { (byte)(s & 0x00FF), (byte)((s & 0xFF00) >> 8) };
}
/**
* unsigned short转byte
*/
public static byte[] unsignedShortToBytes(int s)
{
return new byte[] { (byte)(s & 0x000000FF),
(byte)((s & 0x0000FF00) >> 8) };
}
/**
* int转byte
*/
public static byte[] toBytes(int s)
{
return new byte[] { (byte) (s & 0x000000FF),
(byte)((s & 0x0000FF00) >> 8),
(byte)((s & 0x00FF0000) >> 16),
(byte)((s & 0xFF000000) >> 24) };
}
/**
* byte转int
*/
public static int toInt(byte[] b)
{
return b[0] & 0xff | (b[1] & 0xff) << 8| (b[2] & 0xff) << 16
| (b[3] & 0xff<< 24);
}
/**
* byte转long
*/
public static long toUnsignedInt(byte[] b)
{
return b[0]& 0xff | (b[1] & 0xff) << 8| (b[2] & 0xff) << 16
| (b[3] << 24);
}
/**
* byte转short
*/
public static short toShort(byte[] b)
{
// return (short) (b[0] << 24 | (b[1] & 0xff) << 16) ;
return (short) (((b[1] << 8) | b[0] & 0xff));
}
/**
* byte转unsigned short
*/
public static int toUnsignedShort(byte[] b)
{
return (b[0] << 24 | (b[1] & 0xff) << 16) ;
}
/**
* Assume the long is used as unsigned int
* @param s
* @return
*/
public static byte[] unsignedIntToBytes(long s)
{
return new byte[] { (byte) (s & 0x00000000000000FF),
(byte)((s & 0x000000000000FF00) >> 8),
(byte)((s & 0x0000000000FF0000) >> 16),
(byte)((s & 0x00000000FF000000) >> 24) };
}
/**
* float转换byte
*
* @param x
* @param index
*/
public static byte[] putFloat(float x) {
byte[] b = new byte[4];
int l = Float.floatToIntBits(x);
for (int i = 0; i < 4; i++) {
b[i] = new Integer(l).byteValue();
l = l >> 8;
}
return b;
}
/**
* 通过byte数组取得float
*
* @param b
* @return
*/
public static float getFloat(byte[] b) {
int 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);
return Float.intBitsToFloat(l);
}
}
MathUtils的更多相关文章
- 科学计算法帮助类MathUtils
import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; /** * 科学计算 ...
- MathUtils BigDecimal 数字工具类
package com.hxqc.basic.dependency.util; import org.apache.commons.lang.StringUtils; import java.math ...
- Blender 脚本之 Operator 初探
addon(插件)用来扩展 Blender 的功能,跟其他软件里的 plugin(插件)一样,去掉不会影响软件的运行.插件可以加到 Blender 的用户偏好设置目录里,或者就在你所编辑的.blend ...
- 你应该知道的那些Android小经验
原文出处:http://jayfeng.com/ 做Android久了,就会踩很多坑,被坑的多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录. 查看SQLite日志 ad ...
- android opengl
引用:http://weimingtom.iteye.com/blog/1616972 二维坐标系变换为原点在左上角(测试用) * GLES * JOGL * LWJGL * libgdx(使用g2d ...
- (Python)导出指定文件夹中as文件的完全限定类名
AS3程序在编译的过程中,有一个特点是这样的,不管是项目中的类,还是标准库或者第三方库的类,编译的时候只会把用到的那些类文件编译进去,也就是说,某一些类,只要没有被主程序引用到,那这个文件是不会被编译 ...
- 算法(二)之遗传算法(SGA)
算法(二)之遗传算法(SGA) 遗传算法(Genetic Algorithm)又叫基因进化算法或进化算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,属于启发式搜索算法一种. 下面通过下 ...
- Guava 12-数学运算
范例 int logFloor = LongMath.log2(n, FLOOR); int mustNotOverflow = IntMath.checkedMultiply(x, y); long ...
- Scut游戏服务器免费开源框架--快速开发(2)
Scut快速开发(2) Python脚本开发 1 开发环境 Scut Lib版本:5.2.3.2 需要安装的软件 a) IIS和消息队列(MSMQ) 进入控制面板,程序和功能 b) ...
随机推荐
- OC 异步顺序加载的方法
方法一:发射信号量 OC -异步顺序加载 先调用A接口,再调用B接口,再调用C接口 dispatch_semaphore_t semaphore = dispatch_semaphore_create ...
- Python基础知识拾遗
彻底搞清楚python字符编码 python的super函数
- Mysql与PostgreSQL小pk
普通增删改查 表结构及数据都极其简单,命名也及其不讲究.均为默认配置,mysql表默认InnoDB引擎.表x包含三个int字段a b c,100W条数据均a=1 b=2 c=3 sql语句 建表: c ...
- Android基础_Service
一.service的用途 1.1 一种是执行长时间运行的耗时操做 1.如网络下载.音乐播放2.文件系统监控等 1.2 另一种是负责组件间的交互 1.将某些功能以Service组件形式封装,然后提供给其 ...
- msfvenom向apk注入payload
首先安装apt-get install apkinjector 这个东西,msfvenom重新组装apk的时候会自动调用 msfvenom -x /路径/apk android/meterpreter ...
- Uva - 12050 Palindrome Numbers【数论】
题目链接:uva 12050 - Palindrome Numbers 题意:求第n个回文串 思路:首先可以知道的是长度为k的回文串个数有9*10^(k-1),那么依次计算,得出n是长度为多少的串,然 ...
- qt中moc的作用
Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉.完成这一操作的就是 moc. moc 全称是 Meta-Object Compiler,也就是"元对 ...
- [国嵌笔记][005][Linux命令详解]
用户管理类命令 添加用户:useradd name 删除用户:userdel -r name "-r"表示删除对应用户的目录 修改密码:passwd name 切换用户:su - ...
- Spark性能调优之Shuffle调优
Spark性能调优之Shuffle调优 • Spark底层shuffle的传输方式是使用netty传输,netty在进行网络传输的过程会申请堆外内存(netty是零拷贝),所以使用了堆外内存. ...
- java包装类简析
对于8个基本类型,java提供了他们相应的包装类: 基本类型 包装类 byte java.lang.Byte short java.lang.Short int java.lang.Integer l ...