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字节数组转换为数字的更多相关文章

  1. C语言字节数组转换为基本数据类型

    首先,必须明确基本类型在不同环境下字节的大小 这里用到了unsigned char:1  int:4  double:8 自己主要想用的是将字节数组转换为int型,double型 具体来说,将接收到的 ...

  2. java中把字节数组转换为16进制字符串

    把字符串数组转换为16进制字符串 import java.security.MessageDigest; public class StringUtil { public StringUtil() { ...

  3. C#使用内存和指针方式将字节数组转换为Bitmap

    /// <summary> /// 指针方式转 /// </summary> /// <param name="Width">图像的宽</ ...

  4. c++字节数组转换为整型

    http://bbs.csdn.net/topics/360132089 BYTE data[4]={0x00,0x00,0xe6,0x00};//第一句UINT a11=*(UINT*)data;/ ...

  5. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

    public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...

  6. mina 字节数组编解码器的写法 II

    I 里面的写法不够严谨,这也是我之前说它简陋的主要原因,下面来个更加严谨.完整一点儿的: ByteArrayEncoder.java package org.bruce.mina.cpp.codec; ...

  7. java对获取的字节数组进行处理

    java对获取的字节数组bytes[]进行处理: 第一种,直接将该字节数组转换为字符串(部分): String content = ,); //从位置0开始获取2个字节 这样,对获取的数据报进行全部转 ...

  8. 【Java】字节数组转换工具类

    import org.apache.commons.lang.ArrayUtils; import java.nio.charset.Charset; /** * 字节数组转换工具类 */ publi ...

  9. 字符串、字节数组、流之间的相互转换以及文件MD5的计算

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace myMe ...

随机推荐

  1. Python编码规范:IF中的多行条件

    Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我 ...

  2. 操作mysql(import pymysql模块)

    pymysql模块 import pymysql #1.连上数据库.账号.密码.ip.端口号.数据库 #2.建立游标 #3.执行sql #4.获取结果 #5.关闭游标 #6.连接关闭 #charest ...

  3. timesten 修改最大连接数

    修改完/var/Timesten/sys.odbc.ini里面的connections之后 重启TT:ttdaemonadmin -restart 报错:15019: Only the instanc ...

  4. ApiUser

    using System; using System.Runtime.InteropServices; using System.Text; using HANDLE = System.IntPtr; ...

  5. js表单提交到后台对象接收

    $.extend({ StandardPost:function(url,args){ var form = $("<form method='post' target='_blank ...

  6. PHP编译报错

    //usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line collect2: error: l ...

  7. 学习ActiveMQ(七):JMS消息的事务管理

    Spring提供了一个JmsTransactionManager用于对JMS ConnectionFactory做事务管理.这将允许JMS应用利用Spring的事务管理特性.JmsTransactio ...

  8. error lnk1158 无法运行rc.exe

    找到C:\Program Files (x86)\Windows Kits\8.0\bin\在运行一下rc.exe和rcdll.dll拷贝到D:\Soft\VS2015\VC\bin目录下.

  9. 爬虫-----selenium模块自动爬取网页资源

    selenium介绍与使用 1 selenium介绍 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作.     sel ...

  10. redis 3.2 新数据结构:quicklist、String的embstr与raw编码方式分界点

    Redis3.2.0引入了新的quicklist的数据结构做了list的底层存储方案.废弃了原来的两个配置参数, list-max-ziplist-entries list-max-ziplist-v ...