codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> using std::cout; // поиск самой длинной битовой последовательности int bitseq(unsigned long a, int& e) { const int len = sizeof(a) << 3; int n = 0, p = 0; e = 0; for(int i = 0; i <= len; i++) { if(a & 1) n++; else { if(n > e) { p = i - n; e = --n; } n = 0; } if(! a) break; a >>= 1; } e = p + e; return p; } // вывод битового представление в выходной поток(консоль, файл) void print_bin(std::ostream& hout, unsigned long a) { if(a != 0) { print_bin(hout, a >> 1); hout.put((char)(a & 1) + '0'); } } int main(void) { unsigned long a = 0x3CEA1F34; // показать битовое представление print_bin(cout, a); cout << std::endl; // поиск int f, l; f = bitseq(a, l); if(f != l) cout << "first index: " << f << "\nlast index: " << l << '\n'; return 0; }
Private
[
?
]
Run code
Submit