Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void left(char* s)
- {
- s[0] = '0';
- for (size_t i = 0; s[i + 1] != '\0'; ++i)
- {
- swap(s[i], s[i + 1]);
- }
- }
- void right(char* s)
- {
- size_t size;
- for (size = 0; s[size] != '\0'; ++size);
- s[size - 1] = '0';
- for (size_t i = size - 1; i > 0; --i)
- {
- swap(s[i], s[i - 1]);
- }
- }
- char* addition(const char* left, const char* right)
- {
- size_t leftSize, rightSize;
- for (leftSize = 0; left[leftSize] != '\0'; ++leftSize);
- for (rightSize = 0; right[rightSize] != '\0'; ++rightSize);
- size_t length = std::max(leftSize, rightSize);
- char* res = new char[length + 1];
- res[length] = '\0';
- size_t i = 1;
- for (i = 1; leftSize >= i && rightSize >= i; ++i)
- {
- res[length - i] = (left[leftSize - i] == '1' || right[rightSize - i] == '1' ? '1' : '0');
- }
- for (; leftSize >= i; ++i)
- {
- res[length - i] = left[leftSize - i];
- }
- for (; rightSize >= i; ++i)
- {
- res[length - i] = right[rightSize - i];
- }
- return res;
- }
- char* composition(const char* left, const char* right)
- {
- size_t leftSize, rightSize;
- for (leftSize = 0; left[leftSize] != '\0'; ++leftSize);
- for (rightSize = 0; right[rightSize] != '\0'; ++rightSize);
- size_t length = std::max(leftSize, rightSize);
- char* res = new char[length + 1];
- res[length] = '\0';
- size_t i = 1;
- for (i = 1; leftSize >= i && rightSize >= i; ++i)
- {
- res[length - i] = (left[leftSize - i] == '1' && right[rightSize - i] == '1' ? '1' : '0');
- }
- for (; length >= i; ++i)
- {
- res[length - i] = '0';
- }
- return res;
- }
- char* hex(const char* s)
- {
- size_t size;
- for (size = 0; s[size] != '\0'; ++size);
- size_t length = (size + 3) / 4;
- char* res = new char[length + 1];
- res[length] = '\0';
- char* ptr = res;
- int add = (size % 4 > 0 ? size % 4 : 4);
- for (int i = 0; i < size; i += add)
- {
- size_t base = 1;
- int dig = 0;
- for (int j = i + add - 1; j >= i; --j)
- {
- dig += (s[j] == '1') * base;
- base *= 2;
- }
- *ptr++ = "0123456789ABCDEF"[dig];
- add = 4;
- }
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement