codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> int convi(const char* s); char* iconv(char* s, int n, int r); int main(void) { char buf[33]; int n = convi(" 2012 year"); printf("dec: %d\n", n); printf("bin: %s\n", iconv(buf, n, 2)); printf("oct: %s\n", iconv(buf, n, 8)); printf("hex: %s\n", iconv(buf, n, 16)); return 0; } // строка в число int convi(const char* s) { int n = 0, i = 1; if(! *s) return 0; while(*s && !(*s >= '0' && *s <= '9')) ++s; if(*(s - 1) == '-') i = -i; while(*s && (*s >= '0' && *s <= '9')) { n *= 10; n += (int)(*s++ - '0'); } return n * i; } // 10-число в 2, 8, 16 char* iconv(char* s, int n, int r) { char c, *p, *t = s; size_t i; const char ts[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; for(i = (size_t)n; i != 0; i /= r) *s++ = ts[i % r]; if(s == t) *s++ = '0'; *s = '\0'; for(--s, p = t; s > p; --s, ++p) { c = *p; *p = *s; *s = c; } return t; }
Private
[
?
]
Run code
Submit