如何用二進制密碼表示位置
㈠ 一種密碼系統21字元,用二進制編碼表示,至少要多少位二進制
21h~7eh
h代表16進制,21
對應的二進制是00100001
7e對應的二進制是01111111
所以就是
00100001~01111111
對應的十進制數是
33~127
自己查閱對應的ascii字元
ascii碼的最高位是0
不明白可以繼續追問
㈡ 二進制數組中如何使用最簡便的方法表示1的個數和所處的位置
你是在做數據壓縮演算法嗎?
有很多的演算法都可以的,最簡單的就是遊程編碼了。當然我們可以改進一下,比如:1000011100111111000000...
可以表示為:(1,1),(0,4),(1,3),(0,2),(1,6),(0,6),...[這里暫且稱(1,1)、(0,4)各為一"節"],即:1個1,4個0,3個1,2個0,6個1,6個0...
這時需要根據這個數據流的特點來選擇表達方式,如果不太可能出現一長段的0或1,可以用一個位元組來表示兩個節,高四位和低四位分別存儲一節的信息,比如(1,1)表示為1001,即頭一位表示0或者1,後三位表示連續的個數,
再如:
(0,4) 表示為: 0100
(1,3) 表示為: 1011
(0,2) 表示為: 0010
(1,6) 表示為: 1110
(0,6) 表示為: 0110
所以上例中的數據流可以表示為:10010100/10110010/11100110/(這里用"/"表示位元組間的分隔,只為了看起來方便)
經過這樣一編碼,就把整個數據流無損的保存下來了,至於是否壓縮以及壓縮率就看數據的情況了,極端情況下,不但沒壓縮,反而還增加了數據量。
這里就不把具體的編碼過程用代碼方式寫在這兒了,僅提供演算法思路。另外,對於要判斷某位是否為1,或者哪些位為1,只要順序掃描以上編碼就可以容易地得到了。
上面沒有說得特別詳細,主要是不能確定這是否是你關心的問題,如果是,或者你想要更具體的方法,可以另外再聯系。
㈢ 如何用二進制編碼表示數字
通常是採用ASCII碼來表示英文字母:1000001~1011010表示大寫字母A~Z,1100001~1111010表示小寫字母a~z。
㈣ 二進制數據表示方法
計算機中用的信息一般是用多少位二進製表示,如8位二進制可表示00000000-11111111,8位二進制數也稱為一個位元組(byte),是計算機中最基本的長度單位,數據的表示和處理都必須是位元組的整數倍數。計算機存儲、傳輸和計算的數據可以用並行或串列方式處理,傳輸一個8位數的並行處理是在一個時鍾周期中將8位二進制數一次發送和接收,當然,對應的數據通道必須是8位數(可以理解為需要8條線),而串列處理,則至少需要8個時鍾周期才能處理完一個8位二進制數的傳輸,而對應的數據通道僅是1位數通道(1條線)。為提高處理速度,計算機大多數情況下都是以並行處理方式處理數據。在電路中數據的處理是以命令的時鍾同步頭觸發命令動作開始處理數據,對於串列數據的處理,電路根據同步信號確定數據開始的位置,然後根據時鍾周期按位處理數據,這樣就可以保證准確無誤的處理每一位二進制數據。不管是並行還是串列數據,都是必須按時鍾同步信號同步處理數據,這樣就可保數據的准確無誤。
㈤ 二進製表示中最低位1的位置,這里的位置是指什麼位
一般來說,這個的答案是-128到127第一位是符號位,0表示正數或者0,1表示負數對於正數,表示方式就是二進制本身加上最前面的符號位0,除去符號位以外的其他7位二進制能表示0到127對於負數,取它的絕對值的8位二進製表示,然後所有位取反,最後+1,就是它的表示方式。這可以表示-128到-1以上是補碼表示方式,你也可以用補碼這個關鍵字找到很多資料。問題是:題目完全沒有提補碼這個概念,所以對於不同的編碼方式,這個問題的答案是不一樣的。理論上,8位二進制數可以表示256個不同的值,只要你有一種方案,將這256個值對應到任意256個數值上,就算一種編碼,這種編碼的種類是無限多的。
㈥ 二進制如何表示
二進制計數法是計算機設計的基礎,只用兩個數碼0和1來表示數,在計數時,滿二進一,而十進制計數法需要十個數碼0、1、2、3、4、5、6、7、8、9,在計數時是滿十進一。
另外二進制中的1011+11,其演算法類似於十進制中的加法,但要注意滿2進一,不能出現0和1以外的數碼。
將1011的「個位數1」與11的「個位數1」相加,得10,寫0進1;再將1011的「十位數1」與11的「十位數1」相加,得10,再加上進位得到的1,得11,寫1進1,再將1011中的10與進位的1相加,得10+1=11。
所以二進制中的1011+11=1110。
(6)如何用二進制密碼表示位置擴展閱讀
1、為了表示一個數是二進制記數法,通常在這個數的右下角寫上(2),如十進制中的2在二進制中寫成10(2),3在二進制中寫為11(2),4寫成100(2),5寫成101(2),6寫成110(2)。
2、在二進制中,0+0=0(也可以看作是十進制中的0+0=0),二進制中1+1=10(即十進制中的1+1=2),二進制中的10+1=11(即十進制中的2+1=3),二進制中的11+1=100(即十進制中的3+1=4),二進制中的100+1=101(即十進制中的4+1=5)。
㈦ 128位二進制密碼是什麼
說-128到底是10000000還是11111111,這不用說當然是10000000(2的7次方等128嘛)
除2取余倒序排列,推出128=10000000,,-128的二進制是128的二進製取反加1,所以-128的二進制為10000000。(這樣的話128和-128豈不是一個數了嗎)
計算機里這個的范圍應該是-127-128(沒有-128的)
希望採納,繼續採納!
㈧ 二進制的表示法
二進制數據的表示法
二進制數據也是採用位置計數法,其位權是以2為底的冪。例如二進制數據110.11,逢2進1,其權的大小順序為2²、2¹、2º、 、 。對於有n位整數,m位小數的二進制數據用加權系數展開式表示,可寫為:
二進制數據一般可寫為:
【例1102】將二進制數據111.01寫成加權系數的形式。
解:
二進制和十六進制,八進制一樣,都以二的冪來進位的。
㈨ 二進制數字密碼的破譯
可以運用ReverseMe來二進制數字密碼的破譯,需要了解以下的內容:
1、寄存器:
寄存器就好比是CPU身上的口袋,方便CPU隨時從里邊拿出需要的東西來使用。常見涉及到的九個寄存器:
EAX:擴展累加寄存器;EBX:擴展基址寄存器;ECX:擴展計數寄存器;
EDX:擴展數據寄存器;ESI:擴展來源寄存器;EDI:擴展目標寄存器;
EBP:擴展基址指針寄存器;ESP:擴展堆棧指針寄存器;EIP:擴展的指令指針寄存器;
這些寄存器的大小是32位(4個位元組),他們可以容納數據從0-FFFFFFFF(無符號數),除了以下三個寄存器,其他我們都可以隨意使用:
EBP:主要是用於棧和棧幀。ESP:指向當前進程的棧空間地址。EIP:總是指向下一條要被執行的指令。
2、棧:棧是在內存中的一部分,它有兩個特殊的性質:
FILO(FisrtInLastOut,先進後出);地址反向增長(棧底為大地址,棧頂為小地址)。
3、CALL指令,call有以下幾種方式:
call404000h;直接跳到函數或過程的地址;calleax;函數或過程地址存放在eax,calldwordptr[eax]。
4、系統API:Windows應用程序運行在Ring3級別,API函數,我們也稱之為系統提供給我們的介面。因為系統只信任自己提供的函數,所以我們要通過API才能實現對內核的操作。
5、mov指令mov指令格式:movdest,src。
這是一個很容易理解的指令,mov指令將src的內容拷貝到dest,mov指令總共有以下幾種擴展:movs/movsb/movsw/movsdedi,
esi:這些變體按串/位元組/字/雙字為單位將esi寄存器指向的數據復制到edi寄存器指向的空間。movsx符號位擴展,byte->word,word->dword(擴展後高位全用符號位填充)。
然後實現mov。movzx零擴展,byte->word,word->dword(擴展後高位全用0填充),然後實現mov。
6、cmp指令,cmp指令格式:cmpdest,src
cmp指令比較dest和src兩個操作數,並通過比較結果設置C/O/Z標志位。
cmp指令大概有以下幾種格式:
cmpeax,ebx;如果相等,Z標志位置1,否則0。cmpeax,[404000];將eax和404000地址處的dword型數據相比較並同上置位cmp[404000],eax;同上。
7、標志位:在破解中起到的作用是至關重要的。
在逆向中,你真正需要關心的標志位只有三個,也就是cmp指令能修改的那三個:Z/O/C。
Z標志位(0標志),這個標志位是最常用的,運算結果為0時候,Z標志位置1,否則置0。
O標志位(溢出標志),在運行過程中,如操作數超出了機器能表示的范圍則稱為溢出,此時OF位置1,否則置0。
C標志位(進位標志),記錄運算時從最高有效位產生的進位值。例如執行加法指令時,最高有效位有進位時置1,否則置0。
掌握這些指令後就可以運用ReverseMe來二進制數字密碼的破譯。
(9)如何用二進制密碼表示位置擴展閱讀:
在數學和數字電路中,二進制(binary)數是指用二進制記數系統,即以2為基數的記數系統表示的數字。這一系統中,數通常用兩個不同的符號0(代表零)和1(代表一)來表示。
以2為基數代表系統是二進位制的。數字電子電路中,邏輯門的實現直接應用了二進制,因此現代的計算機和依賴計算機的設備里都用到二進制。每個數字稱為一個比特(二進制位)。
把二進制化為八進制也很容易,因為八進制以8為基數,8是2的冪(8=2),因此八進制的一位恰好需要三個二進制位來表示。八進制與二進制數之間的對應就是上面表格中十六進制的前八個數。二進制數000就是八進制數0,二進制數111就是八進制數7,以此類推。