uint8을 uint32로 캐스팅

병아리

임베디드 C에서 uint8 및 uin32를 캐스팅하는 데 문제가 있습니다. 사용중인 코드는 다음과 같습니다.

int b = 0;
u8 dt[4] = {0};
while (there_is_buffer(rbuf)) {
    dt[b] = (u8)(popFront(rbuf));
    if (b > 2) {
        uint32_t _Recv = (uint32_t)dt;

        /*      xil_printf("data: %x%x%x%x\n\r",dt[3], dt[2], dt[1], dt[0]);  */
        xil_printf("data: %x\n\r", _Recv);
        b = 0;
    }
    else  
        b++;
}

주석 처리 된 printf 문은 제대로 작동하지만 다른 문은 작동하지 않습니다. 여기서 내가 뭘 잘못하고 있니? u8배열을 uint32로 캐스팅하려면 어떻게 해야합니까?

그것은 dt포인터 이기 때문에 캐스트 할 때 uint32_t주소를 _Recv.

a로 캐스트 uint32_t한 다음 역 참조 를 시도해야 합니다.

uint32_t _Recv = *((uint32_t*)dt)

주소가에 대한 포인터로 해석되도록 unsigned int.

더 읽기 쉬운 접근 방식은 시프트를 사용하여 가치를 구축하는 것입니다.

uint32_t _Recv = dt[3]<<24 | dt[2]<<16 | dt[1]<<8 | dt[0];

또한 원하는대로 엔디안을 관리 할 수 ​​있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

uint8 *을 uint32 *로 캐스팅하는 방법은 무엇입니까?

분류에서Dev

uint8을 uint8 []로 캐스트

분류에서Dev

uint8을 부동으로 캐스팅 한 셰이더 및 uint로 다시 해석

분류에서Dev

int32를 uint32로 캐스팅하는 것이 작동하지 않습니까?

분류에서Dev

Swift에서 [UInt32]-> [UInt8]-> [[UInt8]] 변환

분류에서Dev

c-uint8_t *를 uint32_t * 동작으로 캐스팅

분류에서Dev

MATLAB uint8 스파 스

분류에서Dev

UInt32 십진수를 UInt32 16 진수로 변환

분류에서Dev

래스터 dtype을 uint8에서 float32로 변환하는 방법은 무엇입니까?

분류에서Dev

uint32_t를 int32_t로 캐스팅하고 나중에 비교

분류에서Dev

정렬되지 않은 uint8_t에서 uint32_t 배열로 다시 캐스팅-모든 값을 가져 오지 않음

분류에서Dev

Uint8 ~ mm0 레지스터

분류에서Dev

"wstring"을 "const UInt8 *"로 변환

분류에서Dev

int 유형을 uint8로 변환

분류에서Dev

int32_t에서 uint64_t 로의 캐스팅 순서

분류에서Dev

"uint8"을 "float32"로 변환해야하는 이유

분류에서Dev

복사하지 않고 Int32Array를 Uint8Array로 캐스팅하는 방법

분류에서Dev

32 비트 값을 HANDLE로 캐스팅

분류에서Dev

'Swift.UInt32'유형의 값을 'Swift.Int'로 캐스팅 할 수 없습니다.

분류에서Dev

문자열을 UnsafeMutablePointer <UInt8>로 변환하는 방법은 무엇입니까? 스위프트 3

분류에서Dev

비 Objective-C 포인터 유형 'const UInt8 *'(일명 'const unsigned char *')을 'NSData *'로 캐스트하는 것은 ARC에서 허용되지 않습니다.

분류에서Dev

문자열을 Cardinal / UInt32로 변환

분류에서Dev

uint32를 읽을 수있는 값으로 변환

분류에서Dev

문자열을 UInt32로 변환하는 방법?

분류에서Dev

uint8 *을 vector <Uint8>에 올바르게 복사하는 방법

분류에서Dev

UInt8을 문자 UTF8로 변환

분류에서Dev

이미지 데이터 유형을 uint16에서 uint8로 변환

분류에서Dev

바이트를 UInt32로 변환하는 성능 향상

분류에서Dev

IP 주소를 바이너리로 변환 (UInt32)

Related 관련 기사

  1. 1

    uint8 *을 uint32 *로 캐스팅하는 방법은 무엇입니까?

  2. 2

    uint8을 uint8 []로 캐스트

  3. 3

    uint8을 부동으로 캐스팅 한 셰이더 및 uint로 다시 해석

  4. 4

    int32를 uint32로 캐스팅하는 것이 작동하지 않습니까?

  5. 5

    Swift에서 [UInt32]-> [UInt8]-> [[UInt8]] 변환

  6. 6

    c-uint8_t *를 uint32_t * 동작으로 캐스팅

  7. 7

    MATLAB uint8 스파 스

  8. 8

    UInt32 십진수를 UInt32 16 진수로 변환

  9. 9

    래스터 dtype을 uint8에서 float32로 변환하는 방법은 무엇입니까?

  10. 10

    uint32_t를 int32_t로 캐스팅하고 나중에 비교

  11. 11

    정렬되지 않은 uint8_t에서 uint32_t 배열로 다시 캐스팅-모든 값을 가져 오지 않음

  12. 12

    Uint8 ~ mm0 레지스터

  13. 13

    "wstring"을 "const UInt8 *"로 변환

  14. 14

    int 유형을 uint8로 변환

  15. 15

    int32_t에서 uint64_t 로의 캐스팅 순서

  16. 16

    "uint8"을 "float32"로 변환해야하는 이유

  17. 17

    복사하지 않고 Int32Array를 Uint8Array로 캐스팅하는 방법

  18. 18

    32 비트 값을 HANDLE로 캐스팅

  19. 19

    'Swift.UInt32'유형의 값을 'Swift.Int'로 캐스팅 할 수 없습니다.

  20. 20

    문자열을 UnsafeMutablePointer <UInt8>로 변환하는 방법은 무엇입니까? 스위프트 3

  21. 21

    비 Objective-C 포인터 유형 'const UInt8 *'(일명 'const unsigned char *')을 'NSData *'로 캐스트하는 것은 ARC에서 허용되지 않습니다.

  22. 22

    문자열을 Cardinal / UInt32로 변환

  23. 23

    uint32를 읽을 수있는 값으로 변환

  24. 24

    문자열을 UInt32로 변환하는 방법?

  25. 25

    uint8 *을 vector <Uint8>에 올바르게 복사하는 방법

  26. 26

    UInt8을 문자 UTF8로 변환

  27. 27

    이미지 데이터 유형을 uint16에서 uint8로 변환

  28. 28

    바이트를 UInt32로 변환하는 성능 향상

  29. 29

    IP 주소를 바이너리로 변환 (UInt32)

뜨겁다태그

보관