codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> //2(bin) -> 8(oct) char* bin_to_oct(const char* b, char* o){ int i, n, v; const char* p; char c, *q; char* t = o; for(p = b; *p; ++p); n = (int)(p - b); for(i = n; i >= 3; i -= 3){ v = ((b[i-3] - '0') << 2) | ((b[i-2] - '0') << 1) | (b[i-1] - '0'); *o++ = (char)(v + '0'); } for(v = 0, n = i; i > 0; --i) v |= (b[n-i] - '0') << (i - 1); if(v != 0) *o++ = (char)(v + '0'); *o = '\0'; for(q = t, --o; q < o; ++q, --o){ c = *q; *q = *o; *o = c; } return t; } int main(void){ char o[32]; std::cout << bin_to_oct("101", o) << std::endl; std::cout << bin_to_oct("10101011", o) << std::endl; std::cout << bin_to_oct("11000000111101", o) << std::endl; return 0; }
Private
[
?
]
Run code
Submit