java short数组转byte数组_byte数组如何转为short数组 (转)
最近在搞毕业设计,做的是有关语音识别的手机应用。在处理音频的过程中,发现需要用short数组处理音频,可能光用byte会越界。但是java读文件没有一次性读到short数组中的api,要么是一个一个读short,要么读到byte数组后人工转为short数组。前者的行为和c++行为正好相反,主要是高低位问题,所以只能采取后者。
见代码:
publicshort[] byteArray2ShortArray(byte[] data,intitems) {short[] retVal=newshort[items];for(inti=0; i
retVal[i]=(short) ((data[i*2]&0xff)|(data[i*2+1]&0xff)<<8);returnretVal;
}
虽然如今代码执行是对的,但是注意的是,data元素取出来后要先和0xff按位与一下,否则出来的结果又三分之一不到都是不对的。具体什么原因,请大神给予指点!
data元素取出来后要先和0xff按位与一下,否则出来的结果又三分之一不到都是不对的。
##不熟悉JAVA,估计原因是这样的
Byte在执行位操作时,会隐式转换为带符号的Int类型,于是
首位是0的,值不变(0x7E => 0x0000007E)
首位是1的,值会变化(0xD3 => 0xFFFFFFD3)
如果直接拿首位是1的去进行位或操作,结果就会有问题
如果先执行一次&0xff,那么0xFFFFFFXX就会变为0x000000XX,保证结果的正确
java short数组转byte数组_byte数组如何转为short数组 (转)相关推荐
- PHP多维数组转为一维数组的方法实例
1. 使用foreach function array_foreach($arr) {static $tmp = array();if (!is_array ($arr)) {return false ...
- java filestream 包,java.io.FileOutputStream.write(byte[] b)
全屏 java.io.FileOutputStream.write(byte[] b)方法从指定的字节数组写入b.length个字节到该文件输出流. 声明 以下是java.io.FileOutputS ...
- android byte数组合并,byte数组 合并 与 截取(java)
合并数组java /** * 合并byte[]数组 (不改变原数组) * @param byte_1 * @param byte_2 * @return 合并后的数组 */ public byte[] ...
- java float to byte_java float数组转byte数组,byte数组转float数组
首先是float数组转byte数组 public static byte[] FloatArrayToByteArray(float[] data) { byte[] Resutl = {}; for ...
- Java基础笔记(入门,语法基础,流程控制,数组)
Java语言入门 发展历程 三大技术体系 JavaSE 标准版 JavaEE 企业版 JavaME 嵌入式版 Java语言特点 简单性 健壮性 面向对象 分布式 多线程 动态性 可移植性(跨平台) J ...
- byte初始化并赋值_一位数组的定义、赋值和初始化.note
当数组中每个元素都只带有一个下标时,这种数组就是"一维数组".一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组. ...
- Java基础语法之变量、运算符、流程控制、数组和方法等基础语法
变量.运算符.流程控制.数组和方法等基础语法.Java程序的执行流程,符合Java语法规则的程序. 1.1.1 Java初识 对Java进行简单介绍,Java程序如何执行,以及Java程序的结构. J ...
- java二维数组遍历后转为一维数组_java数组(一)
数组的定义 数组是相同类型数据的有序集合. 简单理解就是:数组是由若干个相同类型的数据,按照一定的顺序组合而成的.数组中的每一个数据我们可以称为元素,每个元素可以通过索引(下标)来访问(获取). 数组 ...
- java二维数组遍历后转为一维数组_[基础篇]-基础知识整理-05-数组基本概念
数组 数组是大部分编程语言所支持的数据结构,Java也支持数组,Java的数组是一种引用类型的变量,Java程序通过数组引用变量来操作数组,包括获取数组的长度,访问数组的值等. 数组的基本概念 数组是 ...
最新文章
- 接口与抽象类的使用选择
- 在首次发布三周之后,MLflow迎来了0.2版本
- 如何在keil下实现单工程多目标的设置(选择性自动编译)
- 要有自己的核心竞争力,应对时代变迁
- 1123. Is It a Complete AVL Tree (30)
- Exchange2003-2010迁移系列之十一,Exchange2010 OWA配置
- html中div的居中
- Codeforces Round #584 (Div. 1 + Div. 2)
- 次导数 次梯度 小结
- 【TWVRP】基于matlab A_star算法求解带时间窗和任务软时间窗多车场多车型车辆路径问题【含Matlab源码 1561期】
- YUV422转RGB并显示于Qlabel
- UI控件--时间选择(日期拾取器)
- 大势智慧参加腾讯云启「创见沙龙」,共探“全真互联网”新趋势
- 计算机一个小键盘按不出来怎么办,电脑小键盘打不出字怎么办?
- getValueFromEvent和shouldUpdate
- 5款超级无敌好用的电脑软件 建议收藏!
- 区块链技术运用在票据领域-票据链
- 【2022 CCPC 桂林站 日志】部分题解
- 从Uniswap Discord社区看DeFi链下治理的三大难题 |链捕手
- python修改excel背景色,基于python的excel背景颜色控制