1
A
回答
10
這是一種簡單的方法,可以根據兩個8位值創建一個16位值。
INBuffer[3] = 0b01001011;
INBuffer[2] = 0b00001001;
INBuffer[3]<<8 // 0b0100101100000000;
(INBuffer[3]<<8) + INBuffer[2] // 0b0100101100001001
這通常表示爲
(INBuffer[3]<<8) | INBuffer[2];
+0
正確。該代碼從內存中以Hi-Low格式(而不是Intel上的低 - 高)存儲的16位值提取,無論內存對齊和平臺endianess如何。如果您正在解碼文件格式或從另一個CPU讀取數據,這是有道理的。 – Adriaan 2009-10-14 15:23:13
6
根據不同的語言這一最有可能的計算
InBuffer[3] * 256 + InBuffer[2]
或(這是最有可能根據語言相同)performes包裝兩個字節爲一個16位字。
相關問題
- 1. 這個位操作函數做什麼?
- 2. 這些操作員在做什麼C
- 3. 這位或者操作符在JavaScript中做了些什麼?
- 4. 這些按位操作是做什麼的
- 5. 這個程序正在做什麼? (SAS)
- 6. 我在這個JavaScript循環操作中做了什麼錯誤?
- 7. 這個操作在C++中做了什麼:char c&= 0x5F?
- 8. 這個操作符在ruby中做了些什麼? << =
- 9. 位置getAccuracy()這個函數做什麼?
- 10. 這個build.xml在做什麼?
- 11. 這個sscanf在做什麼?
- 12. ls -LA做什麼操作?
- 13. 爲什麼這個模位操作起作用?
- 14. 這個Lambda操作有什麼作用?
- 15. 這個JOIN操作的「ON」子句是做什麼的?
- 16. '?'是什麼意思?角色做這個操作?
- 17. 這個正則表達式做什麼?
- 18. 這個正則表達式做什麼?
- 19. 這個正斜槓做什麼
- 20. 移位操作
- 21. 這些操作員在做什麼? String key = offset == -1? keyStroke:keyStroke.substring(offset + 1);
- 22. 冒號操作符在這種情況下做了什麼?
- 23. 簡單操作在Matlab中做什麼?
- 24. '+ ='操作符在Javascript中做了什麼?
- 25. :操作員在裝配中做什麼?
- 26. '|| ='操作符在ruby中做了什麼?
- 27. 這個按位操作的目的是什麼? (mWidth + 0x0000000F)&〜0x0000000F;
- 28. C中的這個操作是什麼?
- 29. 這個操作符是什麼意思?
- 30. 這個操作符是什麼,「??」
什麼語言是這個代碼? – 2009-10-14 14:25:28
C++,但我正在翻譯爲C# – 2009-10-14 14:35:53