crc1.js 495 B

12345678910111213141516171819
  1. var isStr = require('./isStr');
  2. var strToBytes = require('./strToBytes');
  3. exports = function(input, previous) {
  4. return exports.signed(input, previous) >>> 0;
  5. };
  6. exports.signed = function(input, previous) {
  7. if (isStr(input)) input = strToBytes(input);
  8. var crc = ~~previous;
  9. var accum = 0;
  10. for (var i = 0, len = input.length; i < len; i++) {
  11. var byte = input[i];
  12. accum += byte;
  13. }
  14. crc += accum % 256;
  15. return crc % 256;
  16. };
  17. module.exports = exports;