Convert 2 bytes into an integer

后端 未结 4 901
挽巷
挽巷 2021-02-12 19:00

I receive a port number as 2 bytes (least significant byte first) and I want to convert it into an integer so that I can work with it. I\'ve made this:

char buf[         


        
4条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-12 19:41

    char buf[2]; //Where the received bytes are
    int number;
    number = *((int*)&buf[0]);
    

    &buf[0] takes address of first byte in buf.
    (int*) converts it to integer pointer.
    Leftmost * reads integer from that memory address.

    If you need to swap endianness:

    char buf[2]; //Where the received bytes are
    int number;  
    *((char*)&number) = buf[1];
    *((char*)&number+1) = buf[0];
    

提交回复
热议问题