-
Notifications
You must be signed in to change notification settings - Fork 0
/
binario.cpp
69 lines (53 loc) · 1.96 KB
/
binario.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using namespace std; // usado para abreviar a chamada e usar apenas o cout
#include <iostream> // chama da biblioteca para usar suas funções
//Função para ligar um bit de um número numa determinada posição informada e retornar o resultado.
unsigned short ligarBit(unsigned short num, int pos) {
unsigned short mascara = 1 << pos;
num = num | mascara;
return num;
}
//Função para desligar um bit de um número numa determinada posição informada e retornar o resultado.
unsigned short desligarBit(unsigned short num, int pos) {
unsigned short mascara = ~(1 << pos);
num = num & mascara;
return num;
}
// problema estranho: eu coloco retorno bool ele não aceita, mas estou retornando bool, só aceita unsigned short.
//Função para testar se um bit está ligado ou desligado, de um número numa determinada posição informada e retornar o resultado.
bool testarBit(unsigned short num, int pos) {
unsigned short mascara = 1 << pos;
if (num & mascara) {
return true;
}
else {
return false;
}
}
//Função para realizar a função lógica "AND" de dois números informados e retornar o resultado.
unsigned short andBi(unsigned short num, unsigned short num2) {
return num&num2;
}
//Função para realizar a função lógica "OR" de dois números informados e retornar o resultado.
unsigned short orBi(unsigned short num, unsigned short num2) {
return num|num2;
}
//Função para pegar os bit de mais baixar ordem e retornar o número formado.
unsigned short baixoBit(unsigned short num) {
// teste
// 0000000011111111 - mascara: 255
// 0001100111101011 - numero: 6635
// 0000000011101011 < - resultado 235
unsigned short mascara = 255;
num = num&mascara;
return num;
}
//Função para pegar os bit de mais alta ordem e retornar o número formado.
unsigned short altoBit(unsigned short num) {
// teste
// 1111111100000000 - mascara: 65280
// 0001100111101011 - numero: 6635
// 0001100100000000 < - resultado 6400
unsigned short mascara = 65280;
num = num&mascara;
return num;
}