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) ...
随机推荐
- windows第四层负载均衡--基于NLB负载均衡
上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡 TCP/IP协议族,第七层是应用层,第四层是传输层.第四层负载均衡主要通过IP进行转化. 一些优秀的第四层负载均衡软件,速度可以接 ...
- java_web学习(十) 显示mysql中的数据
一.建立数据库 create database animal; create table animal( sno int, name varchar(20), weight varcahr(20), ...
- React Native 网络层分析
文:志俊(沪江Web前端) 本文原创,转载请注明作者及出处 在使用React Native开发中,我们熟练的采用JavaScript的方式发送请求的方式发送一个请求到服务端,但是处理这个请求的过程其实 ...
- 使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
"/"应用程序中的服务器错误.使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值. ...
- 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解
上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置.今天我们来详细的研究一下DispatcherServlet的url-pattern配置 ...
- BZOJ:4827: [Hnoi2017]礼物
[问题描述] 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度. 但是在她生日的 ...
- 我的第一次Pascal程序
今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! ; begin write('Hello World! ...
- 51Nod 1182 完美字符串(字符串处理 贪心 Facebook Hacker Cup选拔)
1182 完美字符串 题目来源: Facebook Hacker Cup选拔 基准时间限制:1 秒 空间限制:1 ...
- Xshell无法连接到LINUX虚拟机
首先与遇到的情况是,在虚拟机下安装了Linux后,xshell无法连接远程的虚拟机. 我遇到的情况是虚拟机可以ping 主机,主机确ping不了虚拟机. 使用的VM设置了两个网卡,一个nat 一个h ...
- c#委托事件入门--第二讲:事件入门
上文 c#委托事件入门--第一讲:委托入门 中和大家介绍了委托,学习委托必不可少的就要说下事件.以下思明仍然从事件是什么.为什么用事件.怎么实现事件和总结介绍一下事件 1.事件是什么:. 1.1 NE ...