String#sum
String#sum(bits=16)は単純なサムチェックを取るメソッドです。引数はビット数。
疑問:ri sumには「the sum of the binary value of each character in _str_ modulo +2n - 1+」と書いてありますが、modulo $2^{n}$ではないでしょうか?(- 1がいらないという意味)。&によるマスクなら$2^{n} - 1$になると思いますが。
p "Rubyco".sum p "Rubycp".sum p "Rubycq".sum p "Rubycr".sum p "Rubycs".sum p "Rubyct".sum p "Rubycu".sum p "Rubyco".sum(2) p "Rubycp".sum(2) p "Rubycq".sum(2) p "Rubycr".sum(2) p "Rubycs".sum(2) p "Rubyct".sum(2) p "Rubycu".sum(2)
実行結果です。
628 629 630 631 632 633 634 0 1 2 3 0 1 2