簡體   English   中英

big-endian的整數轉換

[英]Integer casting in big-endian

在big-endian機器中,如果我有一個long變量並將其強制轉換為char ,那么語言規范是否可以保證在強制轉換之后我將得到最低有效位?

換一種說法:

long a = 50;
char b = (char)a;
assert(b == 50); /* Is it true? */

我知道小端機器確實如此,但是大端機器呢?

...如果該值可以用目標類型(和位域寬度)表示,則該值不變; 否則,該值是實現定義的。 (第4.7 / 3節)。

由於char必須能夠容納至少127個值,因此這種情況下的結果必須為50。

是。 否則,很多代碼都會中斷。

暫無
暫無

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

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