最新电影在线观看,jrs低调看直播,avav天堂,囯产精品宾馆在线精品酒店,亚洲精品成人区在线观看

C#轉C++(數組復制、char轉16位無符號整數)

數組復制:

C#實現:

復制  中的一系列元素(從指定的源索引開始),并將它們粘貼到另一  中(從指定的目標索引開始)。 長度和索引指定為 32 位整數。

c++實現:

1.字符數組

使用strcpy

2.int,float,double等數組

使用memcpy,如復制一個長度為5 的 float數組,則代碼示例如下

int len = 5;

float a[len] = {1.0 ,1.1, 1.2, 1.3, 1.4};

float b[len];

memset(b, a, len*sizeof(float));

memcpy(b, a, len * sizeof(float));

注意,第三個參數不是指數組個數,而是指要復制的數據的總字節數長度

字節數組(C++中unsigned char)轉16位整數

C#實現:

[System.CLSCompliant(false)]
public static ushort ToUInt16 (byte[] value, int startIndex);

參數

value []

包含要轉換的兩個字節的字節數組。

startIndex 

value 內的起始位置。

返回

由兩個字節構成、從 startIndex 開始的 16 位無符號整數。

    byte[] byteArray = {
            15, 0, 0, 255, 3, 16, 39, 255, 255, 127 };

        BitConverter.ToUInt16( byteArray, 1 );
        BitConverter.ToUInt16( byteArray, 0 );
        BitConverter.ToUInt16( byteArray, 3 );
        BitConverter.ToUInt16( byteArray, 5 );
        BitConverter.ToUInt16( byteArray, 8 );
        BitConverter.ToUInt16( byteArray, 7 );

輸出:
index   array elements    ushort
-----   --------------    ------
    1            00-00         0
    0            0F-00        15
    3            FF-03      1023
    5            10-27     10000
    8            FF-7F     32767
    7            FF-FF     65535

C++中無符號字節數組轉無符號16位整數實現:

#include <iostream>

using namespace std;
int main()
{
	unsigned char ch[4] = { 0xAA,0x11,0x02,0x04 };    //-----》使用uchar
	printf("%d  %d\n", *ch, *(ch + 1));
	printf("%x  %x\n", *ch, *(ch + 1));
	printf("uint8_t:%d  %d\n", *(uint8_t*)ch, *(uint8_t*)(ch + 1));//十進制
	printf("uint8_t:%x  %x\n", *(uint8_t*)ch, *(uint8_t*)(ch + 1));//十六進制
	printf("uint16_t:%d  %d\n", *(uint16_t*)ch, *(uint16_t*)(ch + 1));//十進制
	printf("uint16_t:%d  %d\n", *(uint16_t*)(ch+2), *(uint16_t*)(ch + 3));//十進制
	printf("uint16_t:%x  %x\n", *(uint16_t*)ch, *(uint16_t*)(ch + 1));//十六進制

	system("pause");
	return 0;
}
輸出:

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關注 20
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧