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 ...
随机推荐
- Fiddler 教程---小坦克
协议. Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具 Fiddler的工作原理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:888 ...
- h5中不能用js来直接获取网络码和机器码的。
h5中不能用js来获取mac的.是可以获取ip的.代码 <script>var fso = new ActiveXObject("Scripting.FileSystemObj ...
- ECMA Script 6_函数的扩展
ES6规定只要函数参数使用了默认值.解构赋值.或者扩展运算符, 那么函数内部就不能显式设定为严格模式,否则会报错 1. 参数的默认值 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面 函数 ...
- shell变量的使用及输入输出
1.shell 中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个数字 2.通过赋值符合“=” 来定义一个变量的值 如 myname='zhangjunjie' #字符串类型,不解析 ...
- python学习-01
1.编程语言分类: 编译型:(由编译器将代码编译成计算机识别的二进制文件)C \C++ \C# 运行速度较解释型语言快 解释型:(在运行时进行编译)python.php.sheel.ruby.j ...
- VUE iview date-picker取时间范围...
x HTML <script src="//unpkg.com/vue/dist/vue.js"></script> <script src=&quo ...
- 14 - How to check replication status
The people using PostgreSQL and the Streaming Replication feature seem to ask many of the same quest ...
- flask基础二
内容有:1.配置文件处理,2.路由系统,3.视图,4.请求,5.响应,6.模板渲染,7.session,8.flash,9.中间件,10特殊装饰器 一:一个简单知识点 通过路径构成的字符串1.动态导入 ...
- spark-sql自定义函数UDF和UDAF
1 UDF对每个值进行处理: 2 UDAF对分组后的每个值处理(必须分组) SparkConf sparkConf = new SparkConf() .setMaster("local&q ...
- SpringBoot项目修改html后不即时编译
springboot templates 下的 html 修改后无法达到即时编译的效果,搜索资料后记录笔记.原文地址:https://www.cnblogs.com/jiangbei/p/843939 ...