Module: CRC32
- Defined in:
- ext/crc32/crc32.c
Class Method Summary collapse
Class Method Details
.itu_t(string) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'ext/crc32/crc32.c', line 4
static VALUE t_itu_t(VALUE self, VALUE string) {
VALUE str = StringValue(string);
int n = RSTRING(str)->len;
char* p = RSTRING(str)->ptr;
unsigned long r = 0xFFFFFFFF;
int i, j;
for (i = 0; i < n; i++) {
r = r ^ p[i];
for (j = 0; j < 8; j++) {
if ( (r & 1) != 0 ) {
r = (r >> 1) ^ 0xEDB88320;
} else {
r = r >> 1;
}
}
}
return INT2FIX(r ^ 0xFFFFFFFF);
}
|