Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 15.02.2018
Сообщений: 165
1

Запись числа -5 в восьмеричной системе счисления

17.11.2018, 11:43. Показов 2641. Ответов 3
Метки нет (Все метки)

Объясните почему -5 = 377777773 в Восмиричной ссч?
я ввел -5 поидее будет 373(8бит),но в программе выводит 377777773(32 бита)
можно ли как то в программе сделать чтоб int выводился 8бит
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Запись числа -5 в восьмеричной системе счисления  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2018, 11:43
Ответы с готовыми решениями:

Поменять порядок цифр натурального числа N, представленного в восьмеричной системе счисления, на обратный
Всем доброго дня ! Это моя первая циклическая задача подскажите где ошибки?? #include <iostream>...

Вычитание 2-х чисел в восьмеричной системе счисления
Помогите, пожалуйста, написать программу на С(С++): а)Вычитание 2-х чисел в восьмеричной системе...

Возведение в степень чисел в восьмеричной системе счисления
Помогите, пожалуйста, написать программу. Вводятся два числа в восьмеричной системе счисления,...

Найдите количество счастливых чисел записанных в восьмеричной системе счисления
Назовём натуральное число N (10000 (8 система счисления) ≤ N ≤ 77777 (8 система счисления))...

3
Evg
Эксперт CАвтор FAQ
21204 / 8220 / 633
Регистрация: 30.03.2009
Сообщений: 22,538
Записей в блоге: 30
17.11.2018, 12:02 2
В машине используется запись в дополнительном коде

https://ru.wikipedia.org/wiki/... 0%BE%D0%B4

Запись в дополнительном коде зависит от размера (количества бит), в которые пытаются втиснуть число. Строго говоря, запись положительных чисел обладает тем же самым свойством. Т.е. запись числа 5 в восьмеричной системе в зависимости от размера будет выглядеть "005", "000005", "0000000005" и т.п. У отрицательных чисел всё то же самое, просто в старших разрядах записаны не нули, а единицы

C
#include <stdio.h>
 
int main (void)
{
  printf ("%hho\n", (char)-5);
  printf ("%ho\n", (short)-5);
  printf ("%o\n", (int)-5);
  printf ("%llo\n", (long long)-5);
  return 0;
}
Код
$ gcc t.c
$ ./a.out
373
177773
37777777773
1777777777777777777773
0
1 / 1 / 0
Регистрация: 15.02.2018
Сообщений: 165
17.11.2018, 12:08  [ТС] 3
Evg, Благодарю.

Добавлено через 3 минуты
Evg, не подскажите можно ли как то флаг oct с double использовать?
просто у меня квадратный корень,c int работает но вроде int не может дробное значение получать,а вот double не хочет,можете объяснить почему7
C++
1
2
3
4
5
6
7
8
9
10
11
double x;
x=5;
    
        cout << x << " ";
 
    
            cout << sqrt(x) << " ";
        
 
 
        cout << oct << x << " ";
0
Evg
Эксперт CАвтор FAQ
21204 / 8220 / 633
Регистрация: 30.03.2009
Сообщений: 22,538
Записей в блоге: 30
17.11.2018, 12:12 4
Потому что oct - это флаг печати целочисленных типов

Если хочешь распечатать вещественные в побитовом виде, то используй дополнительные приёмы:

C
#include <stdio.h>
 
float f = 1.23; /* 32 бита */
double d = 1.23; /* 64 бита */
 
int main (void)
{
  int i; /* 32 бита */
  long long ll; /* 64 бита */
 
  i = *((int*)&f);
  ll = *((long long*)&d);
 
  printf ("%x\n", i);
  printf ("%llx\n", ll);
  return 0;
}
Код
$ gcc t.c
$ ./a.exe
3f9d70a4
3ff3ae147ae147ae
Добавлено через 34 секунды

Не по теме:

Правда я тут по привычке напечатал в 16-ричном

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2018, 12:12

Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления
Вот пример числа: 754 = 1EC 1000 = 200

Считая, что оно введено в восьмеричной системе счисления, найти его десятеричное представление
Задано число диапазона unsigned long. Считая, что оно введено в восьмеричной системе счисления,...

Запись в бинарный файл в бинарном режиме: будут ли числа записаны в двоичной системе счисления?
Если я записываю случайное четырехзначное число в бинарный файл, открываю его в бинарном режиме, то...

Функция: перевод заданного в восьмеричной системе числа a в десятичную систему
Перевести заданное в восьмеричной системе число a в десятичную систему, используя функцию перевода.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.