簡體   English   中英

浮動右移

[英]right shift for float

我有這樣的浮動變量

float f = 0b 00000000 11110001 00000000 00000000 

我想將第1個(非第0個)字節帶給char變量。 我不能做<<和>>。 我怎樣才能做到這一點?

通常很少有點與浮點值的二進制表示混淆。 您將嘗試的任何內容都無法移植。 但是,通常,這兩個工作:

char c(reinterpret_cast<char*>(&f)[1]);
union {
    float f;
    char  c[sizeof(float)];
} u = { f };
u.c[1];
char bla;
bla = *((char *) &f + 1)

還要記住,采用字節序,在小字節序系統上,您實際需要的是字節2(假設您將字節從0計數到3)。 在這種情況下,您可以在上面的代碼中將+ 1更改為+ 2

暫無
暫無

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

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