1 原則:在計算機系統中,數值一律有補碼來表示(儲存). 所有的運算都以補碼形式進行
2 補碼:
正數的補碼是其本身。6的補碼是:00000110
負數的補碼,通過對該數絕對值的補碼按位取反,再對整個數加1,如-7,先計算7的補碼為00000111,然後取反,得到11111000,然後再加1,得到1111001。
例子,計算 5&-6的結果
5的補碼為00000101, -6的補碼為11111010,
& 11111010
所以結果為0
3 左移 右移 無符號移動
(1): 左移位運算子(<<)能將運算子左邊的運算物件向左移動運算子右側指定的位數(在低位補 0)。
不分正負數,相當於是左乘以2的n次方
(2):右移位運算子(>>)則將運算子左邊的運算物件向右移動運算子右側指定的位數
若值為正,則在高位插入0;若值為負,則在高位插入1。
(3):無符號移動 在執行運算時,>>>運算子的運算元高位補0
4 16進製制與byte 陣列之間的轉換
/**
* transform the specified byte into a hex string form.
*/public static final string bytestohexstr(
byte bcd)
return s.tostring();
} /**
* transform the specified hex string into a byte array.
*/public static final byte hexstrtobytes(
string s)
return bytes;
} private static final char bcdlookup =
;
4 常用進製之間相互轉換
十進位制轉成十六進製制:
integer.tohexstring(inti)
十進位制轉成八進位制
integer.tooctalstring(inti)
十進位制轉成二進位制
integer.tobinarystring(inti)
十六進製制轉成十進位制
integer.valueof("ffff"
,16).tostring()
八進位制轉成十進位制
integer.valueof("876"
,8).tostring()
二進位制轉十進位制
integer.valueof("0101"
,2).tostring()
加密演算法複習
學習了加密演算法的數學模型後,自己對這節課的學習做一次整理.加密演算法大體上可以理解為 將明文轉換為密文的過程,相反的,解密演算法即為將密文解密為明文的過程.課堂介紹了兩類加密演算法 分別是 對稱秘鑰演算法 和 非對稱秘鑰演算法 先從最簡單的開始 對稱,金鑰介紹 說到對稱秘鑰,可以先從 凱撒密碼學開...
對稱加密演算法 DES加密演算法
一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...
gentry同態加密演算法 同態加密演算法
本文對同態加密演算法進行學習。參考文章同態加密演算法。定義同態加密演算法保證對聯合密文的解密結果等價於聯合明文。若存在同態加密演算法f,針對明文a和b,加密後分別得到a f a b f b 將其和a b 解密後得到a b,則同態加密演算法f被成為加法同態加密演算法。加法同態演算法的加密和解密分別用e...