Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <io.h>
- // #include <system.h>
- #include "../include/definition.h"
- #include <iostream>
- #include <bitset>
- int getFirstOnePos(int val)
- {
- for (int i = 0; i < sizeof(val)*8; ++i)
- {
- if (val & 1)
- return i;
- val >>= 1;
- }
- return -1;
- }
- int setBit(int source, int pin, int state)
- {
- return state == 0 ? source &= ~(1UL << getFirstOnePos(pin)) : source |= 1UL << getFirstOnePos(pin);
- }
- int switchState(int source, int pin)
- {
- return source ^= 1UL << getFirstOnePos(pin);
- }
- int checkState(int source, int pin)
- {
- return (source & (1 << getFirstOnePos(pin))) == 0 ? 0 : 1;
- }
- int main()
- { // 9876543210
- int swstate = 0b0000000000;
- //while (1)
- {
- //printf(".");
- swstate = setBit(swstate, SW6, 0);
- swstate = setBit(swstate, SW7, 0);
- swstate = setBit(swstate, SW8, 0);
- swstate = setBit(swstate, SW9, 0);
- switch (swstate)
- {
- case SW0:
- std::cout << "0" << std::endl;
- break;
- case SW1:
- std::cout << "1" << std::endl;
- break;
- case SW2:
- std::cout << "2" << std::endl;
- break;
- case SW3:
- std::cout << "3" << std::endl;
- break;
- case SW4:
- std::cout << "4" << std::endl;
- break;
- case SW5:
- std::cout << "5" << std::endl;
- break;
- default:
- if (swstate == 0)
- std::cout << "OK" << std::endl;
- else
- std::cout << "ERR" << std::endl;
- break;
- }
- }
- std::cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement