簡體   English   中英

如何在 C 中將 char* 轉換為 uint32_t?

[英]How to cast char* to uint32_t in C?

我有一個 char* 數組,定義為char *data_ptr = "ABCDEFGHIJKLMNOPQRSTUVWX" 另外,我有一個寫緩沖區聲明為static uint32_t wr_buff[32]

我迭代地從數組中提取 4 個字節,並將它們放入定義為char substr[4]的 char 的 substring 中。

我想要做的是將這 4 個字節放入寫入緩沖區而不更改它們的值,但我首先需要將 substring 的每個元素轉換為 uint32_t。

我嘗試了以下行,但沒有奏效:

wr_buffer = (uint32_t)substr[0] << 24 | (uint32_t)substr[1] << 16 | (uint32_t)substr[2] << 8 | (uint32_t)substr[3];

如何將這 4 個字節保存到 uint32_t 緩沖區?

你過於復雜的事情:

char *data_ptr = "ABCDEFGHIJKLMNOPQRSTUVWX";
static uint32_t wr_buff[32];
char *posInEntry ;
char *posInOutput;

posInEntry = data_ptr;
posInOutput = (char *) wr_buff;
while (posInEntry < strlen(data_ptr)) {
    posInOutput[3] = posInEntry++;
    posInOutput[2] = posInEntry++;
    posInOutput[1] = posInEntry++;
    posInOutput[0] = posInEntry++;
    posInOutput += 4;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM