legone2008 发表于 2012-02-24 21:22

大侠们啊,请告知一下nawk 如何实现位运算吧

nawk不支持位算吗? 有能人请帮忙回答下这个帖子吧,有积分哦,谢谢!

http://bbs.chinaunix.net/thread-3675665-1-1.html

gawk实现如下,请求nawk应该如何实现#!/bin/bash

hash_pjw()
{
    echo "$1" | gawk 'BEGIN{}
    function ord(c)
    {
      for( i=0;i<256;i++ ) {
            ch = sprintf("%c",i);
            assii = i;
      }
      return assii
    }

    {
      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
页: [1]
查看完整版本: 大侠们啊,请告知一下nawk 如何实现位运算吧