C++中int16_t和byte[]数组互相转换如何实现? 20C

我读取文件是以二进制byte[]类型数组读取的,然后要用int16_t类型的数组进行数据操作,操作完之后又要返回一个byte[]类型的数组输出,这两个数组类型之间的相互转换是如何实现的?求实现的具体代码,是用C++编写的

0

3个回答

 byte input[N * 2];
byte output[N * 2];
for (int i = 0; i < N; i++)
{
int16_t x = input[N *  2] * 16 + input[N *  2 + 1] ;
int16_t y = ... 你需要的计算
output[N *  2] = y / 16;
output[N *  2 + 1] = y % 16;
}

lz的采纳率有点低,希望能及时采纳之前回答的一些问题,谢谢。

1

你指的转换是什么意思?是要一个byte转换成一个int16_t,还是两个byte转换成一个int16_t

0
fate2046
fate2046 回复qq_33108245: 没C币,没动力啊
11 个月之前 回复
shihengzhen101
AlbertS 回复qq_33108245: 如果不考虑的超出范围的部分,直接循环赋值就可以了啊
11 个月之前 回复
shihengzhen101
AlbertS 回复qq_33108245: 一个int16_t转成一个byte,如果超出范围要怎么办
11 个月之前 回复
qq_33108245
丷温眸丶 一个个对应着转,求大佬具体实现代码,C语音的
11 个月之前 回复

memcpy(&int16, byte + 偏移量, 2)反之亦然

0
phenix2009
白色一大坨 其实你这么理解,数组里面两个字节代表一个int16变量,你是高位乘以256加低位,还是使用memcpy都是一样的,转换回去时候也是一样
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java基本类型与byte数组互相转换
java基本类型与byte数组互相转换
字符串<——>Byte数组之间如何互相转换
请问如何将一个字符串转换成一维Byte数组rn及rn一维Byte数组转换成一个字符串rn如:将“这是一个测试”如何转换成一维Byte数组
Java中int与byte数组的互相转换
实现代码 package dream.kuber.test; public class BytesUtil { public static int bytes2Int(byte[] bytes) { int result = 0; result = bytes[0] &amp;amp;amp;amp;amp; 0xff; result = result &amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt; 8 | bytes[1] &amp;amp;
java byte数组与short数组互相转换
public static short[] toShortArray(byte[] src) { int count = src.length / 2; short[] dest = new short[count]; for (int i = 0; i < count; i++) { dest[i] = (short)
byte数组 与 char数组 互相转换问题?
声明两个不同类型数组,然后把buffer2内容复制到buffer1中,结果报错"不能将源数组类型分配给目标数组类型。" rnrnrnbyte []buffer1=new byte[100];rnchar []buffer2=new char[50];rnSystem.Array.Copy(buffer2,0,buffer1,0,buffer2.Length);rnrn请教如何在不同类型的数组间进行复制?!rn谢谢rn
如何实现Object与byte[]的互相转换
小弟想写两个函数static object BytesToObject(bytes[]) 把byte数组转换成类对象rn static bytes[] ObjectToBytes(object) 把类对象转换成byte数组rn从而实现可以将一个类的对象能够通过NetStream传输,但不知道如何写这两个函数,高手指教!
VARIANT和BYTE*如何互相转换?
VARIANT和BYTE*如何互相转换?rnrn例如我将文件数据(为二进制)读到VARIANT型的变量中,再将VARIANT数据保存到BYTE型的数组中,如何来做,请大家讨论.
java工具——数字,byte[]数组互相转换
做数据测试时用到的一个工具类,实现java基本数据类型与byte数组的转换,且会自动补0,如int类型,转换后绝对是4位数组import java.math.BigInteger; import java.util.ArrayList; import java.util.List;public class NumberConvertByte { private static final int
float与byte[]互相转换
今天想利用socket发送数据,可是float类型该怎么发送呢?我的想法是先转换成byte[]型,接收之后再转换回来。float类型是4个字节,而byte是1个字节,所以需要转换成为byte[]的类型,来保证数据的正确转换。话不多说,上代码:public class Main {             //这个函数将float转换成byte[]              public stati...
Java 图片与byte数组互相转换
1、图片到byte数组 //图片到byte数组 public byte[] image2byte(String path){ byte[] data = null; FileImageInputStream input = null; try { input = new FileImageInputStream(new File(...
java类对象与byte数组的互相转换
package com.example.classtobyte; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Seriali
c语言 int与byte[]互相转换
c语言 int与byte[]互相转换 root@ubuntu:/media/mtk6795/alps/sunwave_pub# gcc -g test.c root@ubuntu:/media/mtk6795/alps/sunwave_pub# gdb ./a.out GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Cop
Java中byte数组和16进制字符串互相转换
首先,byte数组转成16进制字符串:/** * byte数组转成字符串 * * @param bytes 数组 * @param isCaptial 使用大写还是小写表示 * @return 转换后的字符串 */ public static String bytesToHexStr(byte[] bytes, boolean is
byte[]、string、char[]互相转换
string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转string: string str = System.Text.Encoding.Default.GetString ( byteArray ); string转char[]: char[] ch= str....
对象和byte流互相转换
ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(bo); os.writeObject(obj); return bo.toByteArray(); 其中obj可以是java里的任何可序列化对象 byte流转为对象 byte[] serial...
C# object byte[] 互相转换
调用C++写的ocx控件 传入一个文件字节数组,控件的方法中参数的类型为object(原c++的参数类型为variant类型)rn把byte[]数组当参数传入怎么转换rn方法原型:rn SaveImageVar(ref object vImage);
Android byte[] 和 String互相转换
这个工程是简单将String和byte[]互相转换的Demo,有需要的可以下载
C# 中Byte[]和File文件互相转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp7 { class Program { static void Main(string[] a...
java 中byte 与bit 互相转换
1.byte转bit 有多重方法: 方法一: public static String getBit(byte by){ StringBuffer sb = new StringBuffer(); sb.append((by>>7)&0x1)  .append((by>>6)&0x1)  .append((by>>5)&0x1)  .append((by>>4)&0x1)  .ap
Java中byte与16进制字符串的互相转换
Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表...
关于JAVA中:int和byte的互相转换
  一、基础概念: 1.原码: 一个byte是一个字节,一个字节是由8个位组成。其中最高位是符号位,范围就是127 ~ -128。 即:0111 1111~1111 1111 也就是说:0000 0001 代表的是1,    1000 0000 代表的是-128。2.反码: 正数的反码是其本身(正数的符号位是0); 负数的反码是:在原码的基础上,符号位不变,其他位取反。(负数的符号...
数组和list的互相转换
一.数组转list: String[] str = new String[] { "1", "2"}; 1.通用的方法 List list = new ArrayList(); for (String s : str) {    list.add(s); } 2.调用Arrays List strList = Arrays.asList(str); 值得注意的是,
图片数组的互相转换
//字符串转变为数组1 NSMutableString * str=[[NSMutableString alloc]initWithFormat:@"1,1,1,1,1,1"]; //字符串转变为数组2 NSMutableArray * array=[NSMutableArray arrayWithArray:[str   componentsSeparatedByString:@"
集合和数组互相转换
数组转换为集合 * 需要注意,转换只能转换为List集合 * 使用的是数组的工具类Arrays的静态方法asList * 只能转换为List集合的主要原因是:Set不能存放重复元素。所以若转换为Set集合可能会出现丢失元素的情况 String[] array = {&quot;one&quot;,&quot;two&quot;,&quot;three&quot;,&quot;four&quot;};        List&amp;lt;String&amp;gt; list = Array...
数组集合互相转换
数组转集合String[] arr = new String[5];List&amp;lt;String&amp;gt; list = Arrays.asList(arr);集合转数组List&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;String&amp;gt;();Object[] arr = list.toArray();String[] arr = new String[list...
指针 数组 互相转换
数组转指针 pthread_t threads[maxThread]; threadArry = (int*)threads; 指针使用数组中的值 for (int i = 0; i &lt; maxThread; i++) { pthread_exit(&amp;(threadArry[i])); }
数组、字符串互相转换
转自https://www.cnblogs.com/woodk/p/5714329.html
list与数组的互相转换
一:数组转化为List :-- Arrays.asList(数组)代码:String[] arr = new String[10]; for (int i = 0; i &amp;lt; 10; i++) { arr[i] = String.valueOf(i); // arr[i] = i + &quot;&quot;; 这样也可以将 i 转为 String类型 } List&amp;lt;String&amp;gt; li...
int数组与String数组互相转换和函数互相转换
今天在群里看到一人说起面试挂的一题,题目是Int数组转成String数组。虽然是基础的问题,但却是基础中比较少用到的问题,因此大家工作都没怎么遇到,不会也很正常。在此整理一下,先来个String与Int 互相转换吧 Int转String(举例两种) int num = 2; String st = "" + num;int num = 2; String st = String.valueOf
byte[]数组与String转换
byte[]数组与String转换有没有可能丢失数据???(涉及DES加解密)rnrn比如要传送字符串A:把A.getBytes()加密后传出rn接收方接收到后,先解密得到byte[],然后再把这个数组转换成String Brn按理说得到的B应该跟A一样吧?rnrn可是我碰到的是基本上一样,但偶尔会不一样rn谁知道是什么原因啊rnrnrn转换方法如下:String s1 = "hello";rn byte[] b = s.getBytes();rn String s2 = new String(b);rn(我自己在网上搜到的好像是说涉及加解密的时候,用上述方法转换byte数组和String有可能丢失数据)rn如果真的是会丢失数据,那该怎样保证不会丢失??
自定义类型和Byte数组转换
我用CopyMemory,但是~调用CopyMemory的时候VB死了~rnrn高手看下怎么弄rn[code=VB]rnType TrasTypern SenderDcID As Longrn RecipientsDcID As Longrn MsgType As Longrn MsgContext As String * 1024rnEnd TypernrnPublic Function EnCodeTrasTypeToByteArray(DcType As TrasType, CodeHo() As Byte)rn ReDim CodeHo(LenB(DcType) - 1)rn CopyMemory CodeHo(0), DcType, LenB(DcType)rnEnd FunctionrnPublic Sub UnCodeTrasTypeToByteArray(ReceiveByte() As Byte, FreeDcDim As TrasType)rn CopyMemory FreeDcDim, ReceiveByte(0), LenB(FreeDcDim)rnEnd Subrn[/code]rnrnrn[code=VB] Dim a As TrasTypern Dim b As TrasTypern Dim Freeb() As Bytern EnCodeTrasTypeToByteArray a, Freebrn UnCodeTrasTypeToByteArray Freeb, b[/code]
string 与 Byte[]数组的转换
◎1:需要将不定长字符串string转换成Btye型数组,该如何转换?rnstring strMsg;rnByte[] bytArr;rnstrMsg=Console.ReadLine(); //strMsg!=“”rn??strMsg=>bytArrrnrn◎2:可否有简单的方法将不同长度的Byte[]数组合并合并为一个较长数组rnByte[] bytArr1=new Byte[3];rnByte[] bytArr2=new Byte[10];rn??Byte[] BytTol<=bytArr1+bytArr2rnrn希望能获取高手帮助!!rnrnrn
结构体转换byte数组
/// <summary> /// 单个结构体转换byte数组 /// </summary> /// <param name="structObj">结构体对象</param> /// <returns></returns> public static byte[] StructToBytes(object structObj) { //得到结构体的大小 int size = Marsh
BYTE数组和String转换
Dim b1(8) ,b2() as byterndim s1 as stringrnrnb1(0)=&HE1rnb1(1)=&H42rnb1(2)=&H1drnb1(3)=&H4arnb1(4)=&H54rnb1(5)=&H9arnb1(6)=&Hc5rnb1(7)=&Hd5rnb1(8)=&H0rnrn'正确的中文显示"酈JT毰 "类似,因为有不存在的特殊字符.rn'转变值错误 rns1=strconv(b1,vbunicode) rn'转换值正确rnb2=strconv(s1,vbFromUnicode)rnrn这样互转以下为什么b2和b1数组中的末尾值不同了???rn我怎样才能在数组转字符串的的时候,确保s1的值正确.rnrn或者有什么办法能把数组的值直接写入数据库,而不用转成string再写库?rnrnrn
IStream 到 byte数组的转换
我调用Gdi+ 里面的Image.Save(rn IN IStream* stream,rn IN const CLSID* clsidEncoder,rn IN const EncoderParameters *encoderParams)rn它通过一个IStream 返回处理好的数据,我要把这些数据以byte[]的形式返回,我对IStream,一窍不通,谁能告诉我应该怎么写rn谢谢
byte数组与整型的转换
请教各位大虾,从网络数据流中接受到的长度分别为2、5的byte数组如何转换为整型?
Java 文件和byte数组转换
Java代码   public class T3 {          public static void main(String[] args){           String filePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src\\1.docx";           String outFilePa
byte数组转换
byte数组的转换工具类 public class FormatTransfer { public static byte[] toLH(int n) { byte[] b = new byte[4]; b[0] = (byte)(n &amp; 0xFF); b[1] = (byte)(n &gt;&gt; 8 &amp; 0xFF); b[2] = (byte)...
C#如何实现Object与byte[]的互相转换,在线等
小弟想写两个函数static object BytesToObject(bytes[]) 把byte数组转换成类对象rn static bytes[] ObjectToBytes(object) 把类对象转换成byte数组rn从而实现可以将一个类的对象能够通过NetStream传输,但不知道如何写这两个函数,高手指教!
如何实现byte[]与Data型数据互相转换呀?
有没有类似于VB中的CopyMemory函数呀?