簡體   English   中英

如何在C中的一行中設置多個位?

[英]How to set multiple bits in one line in C?

我會寫兩行來設置,比如說,有些東西。 這里,例如,我想將uint16_t值x中的高8位設置為y的低8位。

uint16_t y = 0x0034;
uint16_t x = 0xFF12;

我想要x:

assert(x == 0x3412);

我傾向於寫這兩行:

x &= 0x00FF;
x |= (y << 8);

有沒有一種方法可以在不使用宏的情況下編寫單行來實現相同的效果?

只需擴展兩行:

x &= 0x00FF; // x = x & 0xFF
x |= (y<<8); // x = x | (y<<8)

// and combine

x = (x & 0xFF) | (y << 8);

暫無
暫無

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

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