Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- union {
- double number;
- long long inumber;
- char bytes[sizeof(double)];
- };
- number = 0;
- char sign3 = 1;
- int dotPos2 = -1;
- string doubleEnter = "";
- system("cls");
- cout << "DOUBLE " << numberSystem << " system\n";
- printAlphabet(numberSystem);
- cout << "Enter number: ";
- fractionalNumberEnter(doubleEnter, numberSystem, sign3, dotPos2);
- if (dotPos2 != -1) {
- for (int i = 0; i < dotPos2; i++) {
- if (doubleEnter[i] - '0' < 10)
- number += (doubleEnter[i] - '0') * degree(dotPos2 - i - 1, numberSystem);
- else {
- if (doubleEnter[i] <= 'Z') {
- number += (doubleEnter[i] - '0' - 7 /*number that deletes the difference between the character A and number 10*/) * degree(dotPos2 - i - 1, numberSystem);
- }
- else {
- number += (doubleEnter[i] - '0' - 7 - 6 /*number that deletes the difference between the character a and 10*/) * degree(dotPos2 - i - 1, numberSystem);
- }
- }
- }
- for (int i = dotPos2 + 1; i < doubleEnter.length(); i++) {
- if (doubleEnter[i] - '0' < 10)
- number += (doubleEnter[i] - '0') * degree(dotPos2 - i, numberSystem);
- else {
- if (doubleEnter[i] <= 'Z') {
- number += (doubleEnter[i] - '0' - 7 /*number that deletes the difference between the character A and number 10*/) * degree(dotPos2 - i, numberSystem);
- }
- else {
- number += (doubleEnter[i] - '0' - 7 - 6 /*number that deletes the difference between the character a and number 10*/) * degree(dotPos2 - i, numberSystem);
- }
- }
- }
- }
- else {
- for (int i = 0; i < doubleEnter.length(); i++) {
- if (doubleEnter[i] - '0' < 10) {
- number += (doubleEnter[i] - '0') * degree(doubleEnter.length() - i - 1, numberSystem);
- }
- else {
- if (doubleEnter[i] <= 'Z') {
- number += (doubleEnter[i] - '0' - 7 /*number that deletes the difference between the character A and number 10*/) * degree(doubleEnter.length() - i - 1, numberSystem);
- }
- else {
- number += (doubleEnter[i] - '0' - 7 - 6 /*number that deletes the difference between the character A and number 10*/) * degree(doubleEnter.length() - i - 1, numberSystem);
- }
- }
- }
- }
- number *= sign3;
- cout << "\ndecimal notation: " << fixed << number << endl;
- long long temperal;
- temperal = inumber;
- cout << "binary notation: ";
- bit_print(bytes, sizeof(double), hConsole);
- cout << endl;
- cout << "Dou you want to change some bits?\n[y] - yes\n[n] - no";
- char c;
- c = 0;
- do {
- c = _getch();
- } while (c != 'y' && c != 'n');
- cout << endl;
- if (c == 'y') {
- bitChange(temperal, hConsole);
- inumber = temperal;
- cout << "changed demical notation: " << number << endl;
- cout << "changed binary notation: ";
- bit_print(bytes, sizeof(double), hConsole);
- cout << endl;
- }
- cout << "Press ESC to exit...";
- char exitcode;
- do {
- exitcode = _getch();
- } while (exitcode != 27);
- system("cls");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement