位擴充套件和位截斷

nvnnv發表於2016-03-01
         一個小規律, 2^n-2^(n-1) = 2^(n-1)  3^n-3^(n-1)=2*3^(n-1) 。

         位擴充套件其實很好理解,正數和0往前加零就夠了,負數則是往前加一,不過注意位擴充套件往往都是隱形的,不知不覺就擴充套件了,比如 short i = 6; int j = i;  注意 位擴充套件 數值是不變的

         位截斷,就是保留低k位二進位制碼, 比如把一個四位二進位制碼截斷成三位,這不可避免的改變了原來的值,

         對於無符號數,B2U([X',X'',X''',X''''......]) MOD 2^k 就可以了。
         對於有符號數,U2T(B2U([x',x'',x''',x''''.....])mod 2^k)      

         注: B2U  二進位制碼解釋為無符號數   U2T  無符號數編碼解釋為補碼

相關文章