我有兩個16位短褲(s1和s2),我試圖將它們組合成一個32位整數(i1)。根據我正在處理的規範,s1是最重要的單詞,而s2是最不重要的單詞,並且組合的單詞似乎被簽名。 (即,s1的最高位是符號)。最簡單的方法來將兩個短褲合併爲一個int
將s1和s2組合起來最簡潔的方法是什麼?
我估計像
const utils::int32 i1 = ((s1<<16) | (s2));
會做,它似乎工作,但我很擔心左移短按16
此外,我感興趣的是使用工會來完成工作的想法,關於這是好還是壞的想法的任何想法?
在短褲的情況下,我不確定這是否有必要。該標準具有:「操作數應是整數或枚舉類型,並執行整體升級,結果的類型是升級的左操作數的類型」。因此,空格將被隱式提升爲int。 – 2009-08-18 15:42:29
呵呵。我不知道 - 我想這是因爲我總是對數據類型大小超級偏執狂。感謝指針。 – 2009-08-18 15:59:43
因爲在16位整數的平臺上肯定會需要演員陣容,所以這很好是偏執狂! – 2009-08-18 17:20:29