Website Summary Files Commits Branches @commit @diff @stats
path: root / pract_KN
diff options
context:
space:
mode:
2 files changed, 51 insertions, 0 deletions
-rw-r--r--pract_KN/pract. 07/solutions.cpp51
-rw-r--r--pract_KN/pract. 07/Побитови операции и бройни системи.pdfbin0 -> 81401 bytes
diff --git a/pract_KN/pract. 07/solutions.cpp b/pract_KN/pract. 07/solutions.cpp
new file mode 100644
index 0000000..f53555c
--- /dev/null
+++ b/pract_KN/pract. 07/solutions.cpp
@@ -0,0 +1,51 @@
+void getBitwiseRepresentation(int n) {
+ for (int i = 31; i >= 0; --i)
+ std::cout << ((n & (1 << i)) != 0);
+}
+
+void flipFourthBit(int& n) {
+ int mask = 1 << 3;
+ n = n ^ mask;
+}
+
+int numberOfZeroesInBinaryRepresentation(int n) {
+ int cnt = 0;
+ for (int i = 0; i < 32; i++)
+ cnt += ((n & (1 << i)) == 0);
+
+ return cnt;
+}
+
+void setBit(int& n, int bitPosition, bool newBitValue) {
+ int mask = 1 << bitPosition;
+ bool oldBitIsOne = ((mask & n) != 0);
+ if (oldBitIsOne ^ newBitValue) n = n ^ mask;
+}
+
+void printSubset(int arr[], int length, int indexOfSet) {
+ std::cout << "[";
+ int commas = 0;
+ int numberOfOnes = 32 - numberOfZeroesInBinaryRepresentation(indexOfSet);
+
+ for (int i = 0; i < length; i++) {
+ if (((indexOfSet & (1 << i)) != 0)) {
+ std::cout << arr[i];
+
+ if (++commas < numberOfOnes)
+ std::cout << ", ";
+ }
+ }
+ std::cout << ']' << std::endl;
+}
+
+void generateSubSets(int arr[], int length) {
+ int mask = 0;
+ int border = 1 << length;
+ for (int i = 0; i < border; i++)
+ printSubset(arr, length, i);
+}
+
+//bonus: function to change sign of a number
+void changeSign(int& n) {
+ n = ~n + 1;
+}
diff --git a/pract_KN/pract. 07/Побитови операции и бройни системи.pdf b/pract_KN/pract. 07/Побитови операции и бройни системи.pdf
new file mode 100644
index 0000000..da2a87c
--- /dev/null
+++ b/pract_KN/pract. 07/Побитови операции и бройни системи.pdf
Binary files differ