lua字符串分割 C語言編程,求字符串的hash值(散列值)?
C語言編程,求字符串的hash值(散列值)?C編程語言,字符串的哈希值(哈希值)代碼如下:調(diào)查哈希函數(shù)#include<stdio。H>int main(){char s[256]char*P
C語言編程,求字符串的hash值(散列值)?
C編程語言,字符串的哈希值(哈希值)
代碼如下:調(diào)查哈希函數(shù)
#include<stdio。H>
int main(){
char s[256
]char*P
unsigned long long int H=0
scanf(%s,s)
for(P=s*P){
]H=H*31*P
}
printf(%LLU,H)}
您可以簡單地將哈希值解釋為一段數(shù)據(jù)(一個文件或字符串)DNA,或者身份證
通過一定的哈希算法(典型的MD5,SHA-1等),把一個長的數(shù)據(jù)塊映射到一個短的數(shù)據(jù)塊,這個數(shù)據(jù)塊就是大數(shù)據(jù)的哈希值。他有這樣一個特點,他是唯一的一個。一旦大數(shù)據(jù)發(fā)生變化,哪怕是很小的變化,他的哈希值也會發(fā)生變化。另一方面,由于它是DNA,它確保沒有兩個數(shù)據(jù)散列是完全相同的。
由于此功能,它通常用于確定兩個文件是否相同。例如,要從網(wǎng)絡下載文件,只需將文件的原始哈希值與下載文件的哈希值進行比較。如果哈希值相同,則表示這兩個文件完全相同,并且文件在下載過程中沒有損壞。如果不是,則表示下載的文件與原始文件不同,并且在下載過程中文件被損壞。