1. C++ / Говнокод #15615

    +61

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    #include <iostream>
    #include <iomanip>
    
    using std::boolalpha;
    using std::cout;
    using std::endl;
    
    template <class N>
    bool getbit(N var, int bit)
    {
        size_t bsz = sizeof(N)*8;
        return ((bsz>=bit)?((var>>bit)%2):(0));
    }
    
    template <class N>
    bool bitCompare(N a, N b)
    {
        size_t bsz = sizeof(N)*8;
    
    	for (size_t i = 0; i < bsz; i++)
    	{
            bool gba = getbit(a, i);
    		bool gbb = getbit(b, i);
    		if (gba != gbb)
    		{
    			return false;
    		}
    	}
    
    	return true;
    }
    
    int main(int argc, char* argv[])
    {
    	cout << "100500 == 100500:" << boolalpha << bitCompare(100500, 100500) << endl;
    	cout << "100500 == 9000: " << bitCompare(100500, 9000) << endl;
    	cout << "'H' == 'H': " << bitCompare('H', 'H') << endl;
    	cout << "'H' == 'K': " << bitCompare('H', 'K') << endl;
    
    	return 0;
    }

    Байтоебство проходили... Дамы и господа! Встречайте битоебство!

    Запостил: gost, 29 Марта 2014

    Комментарии (38) RSS

    Добавить комментарий