instance method String#sum

sum(bits = 16) -> Integer[permalink][rdoc][edit]

文字列の bits ビットのチェックサムを計算します。

以下と同じです。


def sum(bits)
  sum = 0
  each_byte {|c| sum += c }
  return 0 if sum == 0
  sum & ((1 << bits) - 1)
end

例えば以下のコードで UNIX System V の sum(1) コマンドと同じ値が得られます。



sum = 0
ARGF.each_line do |line|
  sum += line.sum
end
sum %= 65536
[PARAM] bits:
チェックサムのビット数