Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include<stdio.h>
- using namespace std;
- char msk[] = { 0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1 };
- void dump(char* b, int size) {
- for (int i = size - 1; i >= 0; i--) {
- for (int j = 0; j < 8; j++) {
- std::cout << ((*(b + i) & msk[j]) ? 1 : 0);
- }
- printf(" ");
- }
- }
- template<typename X>
- void pryamoi(X a) {
- int size = sizeof(X) * 8;
- std::cout << (((a) & (int)pow(2, size - 1)) ? 1 : 0);
- a = abs(a);
- int* m = new int[size - 1];
- for (int i = 0; i < size - 1; i++) {
- m[i] = a % 2;
- a = a / 2;
- }
- for (int i = 2; i < size + 1; i++) {
- cout << m[size - i];
- if (i % 8 == 0) {
- printf(" ");
- }
- }
- }
- template<typename X>
- void obratni(X a) {
- int size = sizeof(X) * 8;
- std::cout << (((a) & (int)pow(2, size - 1)) ? 1 : 0);
- int* m = new int[size - 1];
- if (a < 0) {
- a = abs(a);
- for (int i = 0; i < size - 1; i++) {
- m[i] = abs((a % 2) - 1);
- a = a / 2;
- }
- }
- else {
- for (int i = 0; i < size - 1; i++) {
- m[i] = a % 2;
- a = a / 2;
- }
- }
- for (int i = 2; i < size + 1; i++) {
- cout << m[size - i];
- if (i % 8 == 0) {
- printf(" ");
- }
- }
- }
- int main() {
- int a = -4;
- dump((char*)&a, sizeof(int));
- cout << endl;
- pryamoi(a);
- cout << endl;
- obratni(a);
- float s = -1.44;
- cout << endl;
- dump((char*)&s, sizeof(float));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement