Scala字节数组转换为数字
1. 2个字节数组转换为整数
def bytes2uint8(_bytes: Array[Byte], _offset: Int): Int = {
val b0 = _bytes(_offset) & 0xff
return b0
} def bytes2sint8(_bytes: Array[Byte], _offset: Int): Int = {
val b0 = _bytes(_offset)
return b0
}
2. 4个字节数组转换为整数
def bytes2uint16(_bytes: Array[Byte], _offset: Int): Int = {
var b0 = _bytes(_offset) & 0xff
var b1 = _bytes(_offset + 1) & 0xff return ((b1 << 8) | b0).toShort & 0x0FFFF
} //需要添加import java.nio.ByteBuffer
def bytes2sint16(_bytes: Array[Byte], _offset: Int): Int = {
var _array: Array[Byte] = new Array[Byte](2)
_array(0) = _bytes(_offset + 1)
_array(1) = _bytes(_offset)
return ByteBuffer.wrap(_array).getShort()
}
3. 8个字节数组转换为整数
def bytes2uint32(_bytes: Array[Byte], _offset: Int): Long = {
var b0 = _bytes(_offset + 0) & 0xff
var b1 = _bytes(_offset + 1) & 0xff
var b2 = _bytes(_offset + 2) & 0xff
var b3 = _bytes(_offset + 3) & 0xff
return ((b3 << 24) | (b2 << 16) | (b1 << 8) | b0).toLong & 0xFFFFFFFFL
} def bytes2sint32(_bytes: Array[Byte], _offset: Int): Int = {
var b0 = _bytes(_offset) & 0xff
var b1 = _bytes(_offset + 1) & 0xff
var b2 = _bytes(_offset + 2) & 0xff
var b3 = _bytes(_offset + 3) & 0xff
return ((b3 << 24) | (b2 << 16) | (b1 << 8) | b0)
}
4. 2个字节数组转换为布尔型(Bool)
def bytes2bool(_bytes: Array[Byte], _offset: Int): Boolean = {
var b0 = _bytes(_offset) & 0xff
var b1 = _bytes(_offset + 1) & 0xff return if (((b1 << 8) | b0) != 0) true else false
}
5. 4个字节数组转换为浮点型(Float)
import java.nio.ByteBuffer
def bytes2float(_bytes: Array[Byte], _offset: Int): Double = { var _array: Array[Byte] = new Array[Byte](4) for (i <- 0 until 4) {
_array(i) = _bytes(-i + _offset + 3)
} return ByteBuffer.wrap(_array).getFloat()
}
6. 8个字节数组转换为Double
import java.nio.ByteBuffer
def bytes2real(_bytes: Array[Byte], _offset: Int): Double = { var _array: Array[Byte] = new Array[Byte](8) for (i <- 0 until 8) {
_array(i) = _bytes(-i + _offset + 7)
} return ByteBuffer.wrap(_array).getDouble
}
7. 8个字节数组转换为Long
import java.nio.ByteBuffer
def bytes2long(_bytes: Array[Byte], _offset: Int): Double = {
var _array: Array[Byte] = new Array[Byte](8) for (i <- 0 until 8) {
_array(i) = _bytes(-i + _offset + 7)
}
return ByteBuffer.wrap(_array).getLong
}
Scala字节数组转换为数字的更多相关文章
- C语言字节数组转换为基本数据类型
首先,必须明确基本类型在不同环境下字节的大小 这里用到了unsigned char:1 int:4 double:8 自己主要想用的是将字节数组转换为int型,double型 具体来说,将接收到的 ...
- java中把字节数组转换为16进制字符串
把字符串数组转换为16进制字符串 import java.security.MessageDigest; public class StringUtil { public StringUtil() { ...
- C#使用内存和指针方式将字节数组转换为Bitmap
/// <summary> /// 指针方式转 /// </summary> /// <param name="Width">图像的宽</ ...
- c++字节数组转换为整型
http://bbs.csdn.net/topics/360132089 BYTE data[4]={0x00,0x00,0xe6,0x00};//第一句UINT a11=*(UINT*)data;/ ...
- Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...
- mina 字节数组编解码器的写法 II
I 里面的写法不够严谨,这也是我之前说它简陋的主要原因,下面来个更加严谨.完整一点儿的: ByteArrayEncoder.java package org.bruce.mina.cpp.codec; ...
- java对获取的字节数组进行处理
java对获取的字节数组bytes[]进行处理: 第一种,直接将该字节数组转换为字符串(部分): String content = ,); //从位置0开始获取2个字节 这样,对获取的数据报进行全部转 ...
- 【Java】字节数组转换工具类
import org.apache.commons.lang.ArrayUtils; import java.nio.charset.Charset; /** * 字节数组转换工具类 */ publi ...
- 字符串、字节数组、流之间的相互转换以及文件MD5的计算
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace myMe ...
随机推荐
- 【欧拉回路+最小生成树】SD开车@山东2018省队一轮集训day1
目录 [欧拉回路+最小生成树]SD开车@山东2018省队一轮集训day1 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE [欧拉回路+最小生成树]SD开车@ ...
- 【洛谷】SAC E#1 Factorial
别人可以眼杀我却研究了一个小时看了题解才懂的数学题 输入: n, k 输出: n!在k进制下后缀0的个数 n,k <= 10^12 将 n! 表示成 x×2y5z 的形式,其中 x mod 2 ...
- 5. 箭头函数_this 指向_es6 常用语法
1. 箭头函数 函数的简写方式 () => {} 只有一个参数时,可以省略() ---- x => {} 只有一条语句时,可以省略{},此时这点语句的结果会作为函数的返回值返回 () = ...
- JS-对象的数据重复
<title>01-对象中数据的重复</title> <script type="text/javascript"> var arr = []; ...
- ORACLE PL/SQL编程:把触发器说透
本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...
- 文献阅读方法 & 如何阅读英文文献 - 施一公(转)
附: 如何看懂英文文献?(好) 看需求,分层次 如何总结和整理学术文献? Mendeley & Everything 如何在pdf文献上做笔记?福晰阅读器 自己感悟: 一篇专业文献通常会有几页 ...
- SSH集成(Struts+Spring+Hibernate)
环境:struts2.3.Xspring4.0.0hibernate4.2 思路:从下开始往上集成;层与层之间没有关系;在集成的时候,只关注当前集成的那个层的内容; 1,创建一个空的web项目;重新定 ...
- nregistering JMX-exposed beans
https://blog.csdn.net/yang474231561/article/details/81738632 https://stackoverflow.com/questions/507 ...
- 关于Android布局优化的代码使用
1. include标签: include标签的作用是在一个布局文件中导入另一个布局文件.在开发中经常会有多个页面同时拥有一部分相同的布局,这个时候如果每个布局都把那个部分的代码写一遍就会使得代码重 ...
- CentOS7安装GitLab服务
安装GitLab服务 1.安装必要依赖 yum install -y curl policycoreutils openssh-server openssh-clients postfix 2.下载安 ...