목록Programming (36)
MS Jeong - Blog
/* bitCount: count 1 bits in x */ int bitCount(unsigned int x) { int b; for (b = 0; x != 0; x >>= 1) { if (x & 01) { b++; } } return b; }
/* getBits: get n bits from position p */ unsigned getBits(unsigned int x, int p, int n) { return ((x >> (p + 1 - n)) & ~((~0)
Source: http://www.difranco.net/compsci/C_Operator_Precedence_Table.htm
/* strcat: concatenate t to end of s; s must be big enough */ void strcat(char s[], char t[]) { int i, j; i = j = 0; while (s[i++] != '\0') { /* find end of s */ ; } while ((s[i++] = t[j++]) != '\0') { /* copy t */ ; } return; }
/* squeeze: delete all c from s */ void squeeze(char s[], int c) { int i, j; for (i = j = 0; s[i] != '\0'; i++) { if (s[i] != c) { s[j++] = s[i]; } } s[j] = '\0'; return; }
unsigned long int next = 1; /* rand: return pseudo-random integer on 0 .. 32767 */ int rand(void) { next = (next * 1103515245) + 12345; return (unsigned int) ((next / 65536) % 32768); } /* srand: set seed for rand() */ void srand(unsigned int seed) { next = seed; }
/* lower: convert c to lower case; ASCII only */ int lower(int c) { if ((c >= 'A') && (c
/* atoi: convert s to integer */ int atoi(char s[]) { int i, n; n = 0; for (i = 0; ((s[i] >= '0') && (s[i]
/* strlen: return length of s */ int strlen(char s[]) { int i; i = 0; while (s[i++] != '\0') { ; } return i; }