Я пытаюсь добавить два восьмеричных числа, добавив соответствующие цифры, но я застрял, когда дело в том, что сумма цифр больше 7. Я буду иметь взять перенос и добавить его в следующий цикл добавления. Я не могу найти правильное выражение, чтобы рассмотреть перенос и вычислить окончательную сумму.Добавьте два восьмеричных числа непосредственно без преобразования в десятичные
Другой случай, чтобы рассмотреть, когда числа восьмеричной и б не имеют одинаковое количество цифр, напр: 6 и 13 (6 + 13 = 21 в восьмеричной ). Я не могу установить условие для цикла while для такого условия (если оба имеют одинаковое количество цифр, я могу запустить цикл while до тех пор, пока ни один из них, ни оба из них не станут равными нулю)
Может ли кто-нибудь помочь/выполнить следующий код:
int octal_sum(int a,int b) //a and b and octal numbers
{
int sum=0,carry=0,d=0;
while(**???**)
{
d=0;
d=carry+(a%10)+(b%10);
a/=10;b/=10;
if(d>7)
{
carry=1;
d=d%8;
}
sum= **???**
}
return sum; //returns octal sum of a and b
}
Вы можете использовать 'a + b' и использовать' std :: oct' для ввода/вывода, но это было бы слишком просто. Нет никакой разницы между восьмеричным/десятичным/шестнадцатеричным 'int'. Это всегда двоично, это то, как вы его читаете/печатаете. – LogicStuff
Как вы представляете "восьмеричные" числа? –
@Abhilash Создание 'int' представляет восьмеричное значение после того, как оно напечатано как десятичное, просто безумие. – LogicStuff