我們劃分了一個int值來保存三個值。例如,前8位(從左到右)保存一個值,第8到第12位保存另一個值,其餘位保存第三個值。檢索存儲在int的某些位中的值
我正在編寫一個實用程序方法來從int的特定範圍的位中獲取值。這夠好嗎?你有更好的解決方案嗎? startBitPos和endBitPos從右到左計數。
public static int bitsValue(int intNum, int startBitPos, int endBitPos)
{
//parameters checking ignored for now
int tempValue = intNum << endBitPos;
return tempValue >> (startBitPos + endBitPos);
}
編輯:
我相信所有的值將是unsign。
出於好奇,爲什麼你用這種方式'int',而不是將每個值分別存儲在它自己的類型? – 2011-05-18 19:15:37
代碼是否正確?我想知道符號位會發生什麼。 – Kaj 2011-05-18 19:16:39
數據來自硬件。他們想要節省空間。所有的值都是不正確的。 – 5YrsLaterDBA 2011-05-18 19:23:16