- 论坛徽章:
- 0
|
nawk不支持位算吗? 有能人请帮忙回答下这个帖子吧,有积分哦,谢谢!
http://bbs.chinaunix.net/thread-3675665-1-1.html
gawk实现如下,请求nawk应该如何实现- #!/bin/bash
- hash_pjw()
- {
- echo "$1" | [color=Navy][b]gawk [/b][/color]'BEGIN{}
- function ord(c)
- {
- for( i=0;i<256;i++ ) {
- ch = sprintf("%c",i);
- assii[ch] = i;
- }
- return assii[c]
- }
- {
- str=$0
- for(j=1;j<=length(str);j++){
- temp = ord( substr(str,j,1) )
- hash = ( lshift(hash,4) + temp*13 )
- g = and(hash,0xf0000000)
- #print temp,hash,g
- if(g){
- hash = xor(hash,rshift(g,24))
- hash = xor(hash,g)
- }
- }
- print hash
- }'
- }
- hash_pjw $1
复制代码 |
|