国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端學(xué)習(xí)C語(yǔ)言 - 數(shù)組和字節(jié)序

這篇具有很好參考價(jià)值的文章主要介紹了前端學(xué)習(xí)C語(yǔ)言 - 數(shù)組和字節(jié)序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

數(shù)組

本篇主要介紹:一維二維數(shù)組、字符數(shù)組、數(shù)組名和初始化注意點(diǎn)以及字節(jié)序。

一維數(shù)組

初始化

有以下幾種方式對(duì)數(shù)組初始化:

// 定義一個(gè)有5個(gè)元素的數(shù)組,未初始化
int a[5];

// 定義一個(gè)有5個(gè)元素的數(shù)組,將第一個(gè)初始化0,后面幾個(gè)元素默認(rèn)初始化為0
int a[5] = {0};

// 定義一個(gè)有5個(gè)元素的數(shù)組,5個(gè)元素都初始化為:2,3,4,5,6
int a[5] = {2, 3, 4, 5, 6};

// 【推薦】
// 和上一種在功能上是相同的。編譯器會(huì)根據(jù)初始化列表中的元素個(gè)數(shù)(5個(gè))自動(dòng)確定數(shù)組a的大小為5
int a[] = {2,3,4,5,6};

Tip:以上寫(xiě)法創(chuàng)建的數(shù)組都是不可變大小的。

練習(xí)1

題目int a[5] = {1},請(qǐng)問(wèn) a 的每個(gè)值是多少?

#include <stdio.h>
int main() {
    // 將第一個(gè)初始化1,后面幾個(gè)元素默認(rèn)初始化為0
    int a[5] = {1};
    int i;
    for (i = 0; i < 5; i++) {
        printf("%d ", a[i]);
    }
    return 0;
}

輸出:1 0 0 0 0。

在C和C++中,當(dāng)我們創(chuàng)建數(shù)組時(shí),如果沒(méi)有為數(shù)組的所有元素提供初始值,那么剩下未被初始化指定初始值的元素會(huì)被默認(rèn)初始化。對(duì)于基本數(shù)據(jù)類(lèi)型(如int、float、double等),默認(rèn)情況下,未初始化的元素將被設(shè)置為0

練習(xí)2

題目:如果不對(duì) a[5] 進(jìn)行初始化,將輸出什么?

#include <stdio.h>
int main() {
 -  int a[5] = {1};
 +  int a[5];
    int i;
    for (i = 0; i < 5; i++) {
        printf("%d\n", a[i]);
    }
    return 0;
}

輸出隨機(jī)數(shù):

開(kāi)始運(yùn)行...

4198784
0
4198464
0
-2014700240

運(yùn)行結(jié)束。
練習(xí)3

題目:如果將int a[5]; 提到全局作用于中,輸出什么?

#include <stdio.h>
int a[5];
int main() {
    int i;
    for(i =  0; i <  5; i++){
         printf("%d ", a[i]);
     }
    return  0;
}

輸出: 0 0 0 0 0

練習(xí)4

題目:這段代碼有什么錯(cuò)誤?

#include <stdio.h>

int main() {
    int i = 10;
    int a[i] = {0};

    return 0;
}

運(yùn)行:

開(kāi)始運(yùn)行...

# 不允許初始化可變大小的對(duì)象。即 i 是可變的。
/workspace/CProject-test/main.c:5:11: error: variable-sized object may not be initialized
    int a[i] = {0};
          ^
1 error generated.

運(yùn)行結(jié)束。

結(jié)論:數(shù)組長(zhǎng)度不能是變量。

如果換成 #define 常量 還有問(wèn)題嗎?

#include <stdio.h>
#define i 10
int main() {
    // int i = 10;
    int a[i] = {0};
    return 0;
}

如果換成 #define 常量就正常,前面我們知道 #define 是文本替換。

數(shù)組名

題目:定義一個(gè)數(shù)組a,請(qǐng)問(wèn) a、&a[0]&a的含義是什么?

#include <stdio.h>

int ?main() {
? ? int a[5] ={1};

? ? printf("%p\n", a); 
? ? printf("%p\n", &a[0]);
? ? printf("%p\n", &a);
  
? ? printf("-----\n");

? ? printf("%p\n", a + ?1);
? ? printf("%p\n", &a[0] + ?1);
? ? printf("%p\n", &a + ?1);
? ? return ?0;
}

運(yùn)行:

開(kāi)始運(yùn)行...

0x7ffdfb131f00
0x7ffdfb131f00
0x7ffdfb131f00
-----
0x7ffdfb131f04
0x7ffdfb131f04
0x7ffdfb131f14

運(yùn)行結(jié)束。

Tip: printf 中的 %p 打印的就是內(nèi)存地址。內(nèi)存地址通常以十六進(jìn)制形式表示。

上半部分都是輸出的都是 0x7ffdfb131f00

但下半部分加1后,結(jié)果明顯不同。其中:

  • 0x7ffdfb131f04 - 0x7ffdfb131f00 = 0x4,轉(zhuǎn)為十進(jìn)制是4,一個(gè) int 就是4個(gè)字節(jié)
  • 0x7ffdfb131f14 - 0x7ffdfb131f00 = 0x14,轉(zhuǎn)為十進(jìn)制數(shù)是20,剛好是數(shù)組 a 的字節(jié)數(shù)(5*4)

結(jié)論:

  • a - 數(shù)組名。表示首元素的地址,加 1 是加一個(gè)元素(比如這里4個(gè)字節(jié))
  • &a[0] - 表示首元素地址,加 1 是加一個(gè)元素(比如這里4個(gè)字節(jié))
  • &a - 表示整個(gè)數(shù)組。加1相當(dāng)于跨越了整個(gè)數(shù)組

冒泡排序

之前我們寫(xiě)過(guò)冒泡排序的例子,我們將該示例用 C 語(yǔ)言重寫(xiě)如下(函數(shù)部分后文會(huì)講):

#include <stdio.h>
  
void bubbleSort(int arr[], int n) {
? ? // 比較輪數(shù),每輪都會(huì)將一個(gè)值冒泡到正確的位置
? ? for (int i = 0; i < n; i++) { ? ? ? ? ? ? // 第i輪冒泡
? ? ? ? for (int j = 0; j < n - i - 1; j++) { // 第i輪冒泡需要比較n-i-1次
? ? ? ? ? ? // 出界則為 false,不會(huì)交換
? ? ? ? ? ? if (arr[j] > arr[j + 1]) {
? ? ? ? ? ? ? ? int temp = arr[j];
? ? ? ? ? ? ? ? arr[j] = arr[j + 1];
? ? ? ? ? ? ? ? arr[j + 1] = temp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
  
int main() {
? ? int arr[] = {4, 3, 2, 1};
? ? // 計(jì)算數(shù)組長(zhǎng)度。sizeof(arr) - 返回?cái)?shù)據(jù)類(lèi)型或變量所占內(nèi)存大?。ㄗ止?jié));arr[0] - 一個(gè)元素的字節(jié)數(shù)。
? ? int length = sizeof(arr) / sizeof(arr[0]);
? ? bubbleSort(arr, length);
? ? // 輸出
? ? for (int i = 0; i < length; i++) {
? ? ? ? printf("%d ", arr[i]);
? ? }
? ? return 0;
}
// Output: 1 2 3 4

字節(jié)序

字節(jié)序(Byte Order)是指在存儲(chǔ)和表示多字節(jié)數(shù)據(jù)時(shí),字節(jié)的順序排列方式。

思考這樣一個(gè)問(wèn)題

int a[5] 有5個(gè)元素,每個(gè)元素4個(gè)字節(jié),在內(nèi)存中是一塊連續(xù)的空間。表示如下:

索引 a[0] a[1] a[2] a[3] a[4]
地址 0x100 0x104 0x108 0x10C 0x110

我們可以將a[0]稱(chēng)作低地址,a[4]稱(chēng)作高地址。a數(shù)組中每個(gè)元素的四個(gè)字節(jié),最左側(cè)字節(jié)稱(chēng)作低地址,最右側(cè)字節(jié)稱(chēng)作高地址。就像這樣:

低地址 ? ? 高地址
________ ________ ________ ________

數(shù)組 a 中每個(gè)元素中是一個(gè)整數(shù),比如 a[0] = 1,在內(nèi)存中是4個(gè)字節(jié),共32位,其二進(jìn)制表示為:00000000 00000000 00000000 00000001。最左側(cè)是高字節(jié),最右側(cè)是低字節(jié),就像這樣:

高字節(jié) ? ? 低字節(jié)
00000000 00000000 00000000 00000001

請(qǐng)問(wèn) 1 的高字節(jié)(00000000)放在低地址還是高地址?

大端序和小端序

不同的計(jì)算機(jī)架構(gòu)和處理器采用不同的字節(jié)序(Byte Order)。常見(jiàn)的字節(jié)序有兩種:

  • 大端序(Big Endian),低字節(jié)對(duì)應(yīng)高地址,高字節(jié)對(duì)應(yīng)低地址。1 對(duì)應(yīng) 00000000 ?00000000 ?00000000 ?00000001
  • 小端序(Little Endian),低字節(jié)對(duì)應(yīng)低地址,高字節(jié)對(duì)應(yīng)高地址。1 對(duì)應(yīng) 00000001 ?00000000 ?00000000 ?00000000
低地址 ? ? 高地址
大端序 00000000 00000000 00000000 00000001
小端序 00000001 00000000 00000000 00000000

Tip: 不同字節(jié)序的選擇涉及到如何組織和解釋二進(jìn)制數(shù)據(jù)。字節(jié)序的重要性體現(xiàn)在跨平臺(tái)數(shù)據(jù)交互和網(wǎng)絡(luò)通信上。如果兩個(gè)設(shè)備使用不同的字節(jié)序,就需要進(jìn)行適當(dāng)?shù)臄?shù)據(jù)轉(zhuǎn)換才能正確解讀和處理數(shù)據(jù)

二維數(shù)組

可以理解成一維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。例如 a[3][4] 就像這樣:

0 1 2 3
0 行
1 行
2 行

a[0]、a[1]a[2],每一行就是一個(gè)一維數(shù)組。

初始化

有多種方式進(jìn)行二維數(shù)組的初始化,效果也不盡相同。請(qǐng)看示例:

  • int a[3][4]; 未初始化,數(shù)組 a 中都是隨機(jī)值。請(qǐng)看示例:
#include <stdio.h>
  
int main() {
? ? int a[3][4];
  
? ? for (int i = 0; i < 3; i++) {
? ? ? ? for (int j = 0; j < 4; j++) {
? ? ? ? ? ? printf("%d ", a[i][j]);
? ? ? ? }
? ? ? ? printf("\n");
? ? }
  
? ? return 0;
}

輸出:

開(kāi)始運(yùn)行...

-1833069321 32764 4198917 0 
0 0 0 0 
4198848 0 4198464 0 

運(yùn)行結(jié)束。
  • 部分初始化。示例如下:
// 輸出:1 2 3 4 5 6 7 8 9 10 11 12
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
  
// 輸出:1 0 0 0 5 6 0 0 0 0 0 0
int a[3][4] = {{1}, {5, 6}};
  • 全部初始化。示例如下:
// 輸出:1 2 3 4 5 6 7 8 9 10 11 12
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

// 0 0 0 0 0 0 0 0 0 0 0 0 
// 此種寫(xiě)法不能保證所有編譯器
int a[3][4] = {}
  • 行數(shù)可以省略。以下兩行代碼等效:
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
  
// 省略行。類(lèi)似一維數(shù)組中省略元素個(gè)數(shù)。
int a[][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

數(shù)組名

題目:定義一個(gè)二維數(shù)組a,請(qǐng)問(wèn) &a[0][0]、a、&a[0]&a的含義是什么?

#include <stdio.h>
  
int main() {
? ? int a[3][4];
  
? ? printf("%p\n", &a[0][0]); 
? ? printf("%p\n", a); 
? ? printf("%p\n", a[0]); 
? ? printf("%p\n", &a); 
  
? ? printf("-----\n");
  
? ? printf("%p\n", &a[0][0] + 1);
? ? printf("%p\n", a + 1);
? ? printf("%p\n", a[0] + 1);
? ? printf("%p\n", &a + 1);
  
? ? return 0;
}

輸出:

開(kāi)始運(yùn)行...

0x7fffadc7d310
0x7fffadc7d310
0x7fffadc7d310
0x7fffadc7d310
-----
0x7fffadc7d314
0x7fffadc7d320
0x7fffadc7d314
0x7fffadc7d340

運(yùn)行結(jié)束。

上半部分都是輸出的都是 0x7fffadc7d310。

下半部分每個(gè)加1,差異就顯現(xiàn)出來(lái)。

0x7fffadc7d314 - 0x7fffadc7d310 = 0x4,轉(zhuǎn)為十進(jìn)制是4個(gè)字節(jié)
&a[0][0] + 1

0x7fffadc7d320 - 0x7fffadc7d310 = 0x10,轉(zhuǎn)為十進(jìn)制是16個(gè)字節(jié),每個(gè)元素是4個(gè)字節(jié),也就是4(16/4)個(gè)元素,表示一行
a + 1

0x7fffadc7d314 - 0x7fffadc7d310 = 0x4,轉(zhuǎn)為十進(jìn)制是4個(gè)字節(jié)
a[0] + 1

0x7fffadc7d340 - 0x7fffadc7d310 = 0x30,轉(zhuǎn)為十進(jìn)制是48個(gè)字節(jié),每個(gè)元素是4個(gè)字節(jié),也就是 12(48/4)個(gè)元素,表示整個(gè)數(shù)組
&a + 1

結(jié)論:

  • &a[0][0] - 首行首元素地址,加 1 是加一個(gè)元素(比如這里4個(gè)字節(jié))
  • a - 地址名,表示首行地址,加 1 就是加一行
  • a[0] - 首行首元素地址,加 1 是加一個(gè)元素(比如這里4個(gè)字節(jié))
  • &a - 表示整個(gè)數(shù)組。加1相當(dāng)于跨越了一個(gè)數(shù)組
練習(xí)

題目:數(shù)組 a[3][4],哪個(gè)不能表示a[1][1]的地址?

A、a[1] + 1
B、&a[1][1]
C、(*(a + 1)) + 1
D、a + 5

答案:D。

分析:根據(jù)上文學(xué)習(xí),我們知道 A和B能表示,其中D是加5行,肯定錯(cuò)。C由于沒(méi)學(xué)指針,暫時(shí)不管。

字符數(shù)組

在 C 語(yǔ)言中,字符串可以用字符數(shù)組來(lái)表示,即用一個(gè)數(shù)組來(lái)保存一串字符,每個(gè)字符用一個(gè)字節(jié)來(lái)存儲(chǔ),末尾有一個(gè)特殊的空字符 '\0' 來(lái)表示字符串的結(jié)束。

#include <stdio.h>
  
int main() {
? ? char str[] = {'h', 'e', 'l', 'l', 'o', '\0'};
? ? printf("%s", str);
  
? ? return 0;
}

在字符數(shù)組的初始化末尾一定要添加空字符 '\0'(筆者使用的在線(xiàn)編輯器沒(méi)報(bào)錯(cuò)),否則在使用字符串函數(shù)處理字符串時(shí),可能會(huì)出現(xiàn)意外的錯(cuò)誤。也可以將上面的代碼簡(jiǎn)化為以下形式:

char str[] = "hello";

這樣就可以不用手動(dòng)添加空字符了,編譯器會(huì)自動(dòng)為字符串添加結(jié)尾的空字符。

練習(xí)

題目:在輸入的字符串中,在指定位置插入指定字符

實(shí)現(xiàn):

#include <stdio.h>
// string.h 是 C 語(yǔ)言中的頭文件,用于提供一些字符串處理操作的函數(shù)和宏定義
#include <string.h>
  
void insertChar(char str[], int pos, char ch) {
    // 獲取字符串的長(zhǎng)度
? ? int len = strlen(str);
  
? ? // 檢查插入位置是否有效
? ? if (pos < 0 || pos > len)
? ? ? ? return;
  
? ? // 將指定位置后的字符往后移動(dòng)一位
? ? for (int i = len; i >= pos; i--) {
? ? ? ? str[i + 1] = str[i];
? ? }
  
? ? // 在指定位置插入字符
? ? str[pos] = ch;
}
  
int main() {
? ? char str[100];
? ? int pos;
? ? char ch;
  
? ? printf("請(qǐng)輸入字符串。例如 hello world:\n");
? ? scanf("%[^\n]", str);
? ? printf("請(qǐng)輸入要插入的位置:");
? ? scanf("%d", &pos);
? ? printf("請(qǐng)輸入要插入的字符:");
? ? scanf(" %c", &ch);
  
? ? insertChar(str, pos, ch);
  
? ? printf("\n修改后的字符串:%s\n", str);
  
? ? return 0;
}

運(yùn)行:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-486409.html

開(kāi)始運(yùn)行...

請(qǐng)輸入字符串。例如 hello world:
a-b-c d e-f-g
請(qǐng)輸入要插入的位置:4
請(qǐng)輸入要插入的字符:x

修改后的字符串:a-b-xc d e-f-g

運(yùn)行結(jié)束。

到了這里,關(guān)于前端學(xué)習(xí)C語(yǔ)言 - 數(shù)組和字節(jié)序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言學(xué)習(xí)筆記:數(shù)組

    C語(yǔ)言學(xué)習(xí)筆記:數(shù)組

    ?博文作者:煙雨孤舟 ?? 喜歡的可以 點(diǎn)贊 收藏 關(guān)注哦~~ ?? 作者簡(jiǎn)介: 一個(gè)熱愛(ài)大數(shù)據(jù)的學(xué)習(xí)者 ?? 筆記簡(jiǎn)介:作為大數(shù)據(jù)愛(ài)好者,以下是個(gè)人總結(jié)的學(xué)習(xí)筆記,如有錯(cuò)誤,請(qǐng)多多指教! 目錄 ??????? 簡(jiǎn)介 數(shù)組聲明 數(shù)組初始化 訪(fǎng)問(wèn)數(shù)組元素 多維數(shù)組 二維數(shù)組

    2024年02月09日
    瀏覽(16)
  • QT字節(jié)數(shù)組類(lèi)QByteArray

    QT字節(jié)數(shù)組類(lèi)QByteArray

    字節(jié)數(shù)組類(lèi)以 ‘\\0’結(jié)尾,索引的下標(biāo)從0開(kāi)始。 第一次調(diào)用fill函數(shù),不指定size參數(shù),按照之前的長(zhǎng)度,跟新值 第二次調(diào)用fill函數(shù),指定size參數(shù),重新調(diào)整字節(jié)數(shù)組的長(zhǎng)度,并更新值 訪(fǎng)問(wèn)QByteArray類(lèi)對(duì)象的某個(gè)元素有4種方式: [] at() data[] constData[] 其中,[]和data[]可讀可寫(xiě),

    2024年02月16日
    瀏覽(18)
  • 【C語(yǔ)言】從零開(kāi)始學(xué)習(xí)數(shù)組

    【C語(yǔ)言】從零開(kāi)始學(xué)習(xí)數(shù)組

    ??博客主頁(yè):江池俊的博客 ?收錄專(zhuān)欄:C語(yǔ)言初階之路 ??其他專(zhuān)欄:數(shù)據(jù)結(jié)構(gòu)探索 ??代碼倉(cāng)庫(kù):江池俊的代碼倉(cāng)庫(kù) ?? 社區(qū):GeekHub社區(qū)?(歡迎大家加入與我一起探討學(xué)習(xí)經(jīng)驗(yàn)) ?? 如果覺(jué)得博主的文章還不錯(cuò)的話(huà),請(qǐng)點(diǎn)贊??收藏?? 三連支持一下博主?? 目錄 一、一維數(shù)

    2024年02月15日
    瀏覽(17)
  • C語(yǔ)言學(xué)習(xí)分享(第六次)------數(shù)組

    C語(yǔ)言學(xué)習(xí)分享(第六次)------數(shù)組

    ??博主CSDN主頁(yè):杭電碼農(nóng)-NEO?? ? ?專(zhuān)欄分類(lèi):C語(yǔ)言學(xué)習(xí)分享? ? ??代碼倉(cāng)庫(kù):NEO的學(xué)習(xí)日記?? ? ??關(guān)注我??帶你學(xué)習(xí)更多C語(yǔ)言知識(shí) ? ???? 啊~~,很久沒(méi)有更新C語(yǔ)言知識(shí)了,各位久等了,本篇文章在了解了數(shù)組的基本知識(shí)后, 著重于給大家實(shí)現(xiàn)兩個(gè)小游戲:三子棋和掃雷

    2024年02月03日
    瀏覽(26)
  • perl腳本語(yǔ)言學(xué)習(xí)1——基礎(chǔ)篇:變量、數(shù)組、哈希數(shù)組、循環(huán)、文件、函數(shù)

    2023.3.18 今天下載虛擬機(jī)把電腦磁盤(pán)內(nèi)容弄到亂七八糟,難受 發(fā)現(xiàn)每次學(xué)習(xí)遇到一個(gè)坎,感覺(jué)面前是一座大山,越過(guò)去之后又對(duì)前途充滿(mǎn)了希望 perl:practical extraction report language 實(shí)用提取和報(bào)表語(yǔ)言 從字面上看主要與文本處理相關(guān) 變量定義: my 存儲(chǔ) 數(shù)字、字符、字符

    2024年02月12日
    瀏覽(22)
  • C語(yǔ)言學(xué)習(xí)day15:數(shù)組強(qiáng)化訓(xùn)練

    C語(yǔ)言學(xué)習(xí)day15:數(shù)組強(qiáng)化訓(xùn)練

    題目一: 稱(chēng)體重:分別給10個(gè)值,來(lái)獲得最大值 思路: 定義數(shù)組,給數(shù)組內(nèi)賦10個(gè)值 第一個(gè)下標(biāo)的值與第二個(gè)下標(biāo)的值進(jìn)行比較 定義max,將比較得來(lái)的較大的值賦值給max 一直比較直到比較到最后一個(gè)下標(biāo),將得到的最大值賦值給max 代碼: 結(jié)果: 題目二:數(shù)組逆置 數(shù)組逆

    2024年02月21日
    瀏覽(19)
  • C語(yǔ)言學(xué)習(xí)記錄——找數(shù)組中的鞍點(diǎn)

    C語(yǔ)言學(xué)習(xí)記錄——找數(shù)組中的鞍點(diǎn)

    目錄 C語(yǔ)言中 鞍點(diǎn)的定義? 代碼的實(shí)現(xiàn) 思路分析圖解? 指一個(gè)矩陣中,即該位置上的元素在該行上最大,在該列上最小。 一個(gè)二維數(shù)組可能沒(méi)有鞍點(diǎn)。 例如:1,2,3 ? ? ? ? ? ?4,5,6 ? ? ? ? ? ?7,8,9 該矩陣中,鞍點(diǎn)為3所在的位置。 即數(shù)組坐標(biāo)[ 0?] [ 2 ],在第一行第三

    2024年02月04日
    瀏覽(42)
  • 實(shí)現(xiàn)對(duì)象轉(zhuǎn)成字節(jié)數(shù)組(整型支持按位寫(xiě)入,字符串則按字節(jié)寫(xiě)入)

    閑著無(wú)聊,寫(xiě)了一個(gè)對(duì)象轉(zhuǎn)換成byte[]的工具類(lèi),支持整型按位寫(xiě)入(大大節(jié)省空間),具體步驟如下: 1. 定義實(shí)體類(lèi)和注解 2. 工具類(lèi) ? ? 3. 測(cè)試結(jié)果 ? ? 參考文章: https://www.cnblogs.com/Dotnet9-com/p/17981055

    2024年01月23日
    瀏覽(26)
  • C# 字節(jié)數(shù)組、各進(jìn)制字符串?dāng)?shù)據(jù)互轉(zhuǎn)

    C# 字節(jié)數(shù)組、各進(jìn)制字符串?dāng)?shù)據(jù)互轉(zhuǎn)

    日常開(kāi)發(fā)過(guò)程中,格式轉(zhuǎn)換是必不可少的重要環(huán)節(jié),經(jīng)常是十進(jìn)制轉(zhuǎn)十六進(jìn)制、十六進(jìn)制轉(zhuǎn) byte 數(shù)組又轉(zhuǎn)換回來(lái)來(lái)回轉(zhuǎn)換,最然進(jìn)制轉(zhuǎn)換很基礎(chǔ)同時(shí) C# 也提供了很多直接方便進(jìn)行格式轉(zhuǎn)換的方法,但是封裝一個(gè)工具類(lèi)會(huì)方便很多,不用每次都手寫(xiě)代碼邏輯,之前一直都是簡(jiǎn)單

    2023年04月27日
    瀏覽(28)
  • c#優(yōu)雅高效的讀取字節(jié)數(shù)組——不安全代碼(1)

    在開(kāi)發(fā)上位機(jī)的經(jīng)歷中,會(huì)有很多需要和下位機(jī)交互通信的場(chǎng)景,大多數(shù)都會(huì)定義一個(gè)和硬件的通信協(xié)議,最終在上位機(jī)代碼中的形式其實(shí)就是符合通信協(xié)議的字節(jié)數(shù)組。 目錄 場(chǎng)景 如何解析字節(jié)數(shù)組到類(lèi)或結(jié)構(gòu)體中 建立與通信協(xié)議一致的結(jié)構(gòu)體 使用不安全代碼將字節(jié)數(shù)組

    2024年02月06日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包