我如何使用动态内存分配将小数转换为八进制
How can I use dynamic memory allocation for converting decimal to octal?
我写了两个代码。这个不起作用,因为它向后写代码。
void convertNum1(long a) {
while (a!=0) {
long remainder = 0;
remainder = a % 8;
a /= 8;
cout << remainder;
}
cout << endl;
}
我写了此代码,因为第一个代码不起作用。基本上,我的想法是用元素填充数组,然后向后计数。
void convertNum2(long a) {
long *pointer = NULL;
int k = 1;
long c = a;
while (c != 0) {
c/= 8;
k++;
}
pointer = new long[k];
int rem;
for (int j = 0;j<k;j++) {
rem = a / 8;
*(pointer + j) = rem;
}
for (int j = k; j > 0;j--) {
cout << *(pointer + j);
}
delete []pointer;
}
我建议使用stack
。将八进制数字推到堆栈上,然后将它们弹出(它们将以正确的顺序)。
btw,您总是可以作弊并使用std::oct
I/O操纵器
std::string Dec_To_Oct(unsigned long number)
{
static const char octal_char_digits[] = "01234567";
std::stack<char> octal_number;
while (number > 0U)
{
octal_digit = number % 8;
const char d = octal_char_digits[octal_digit];
octal_number.push(d);
number = number / 8;
}
std::string octal_text;
while (!octal_number.empty())
{
const char d = octal_number.top();
octal_text += d;
octal_number.pop();
}
return octal_text;
}
相关文章:
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将 int 数组转换为带有小数C++的双精度数组
- 如何将小数NCR转换为Unicode字符(C )
- 在C 中使用Atof将字符串转换为小数不起作用
- 精确问题将小数号转换为其合理等效物时
- 如何将小数转换为二进制的补码字符串
- C 程序将小数转换为十六进制
- 以下对二进制转换代码的小数如何工作
- 将罗马数字转换为小数C
- 我如何使用动态内存分配将小数转换为八进制
- 将 MFRC522 UID 十六进制字节转换为可打印的小数
- 将字符串转换为双精度,而字符串有 N 位小数,C++
- 将八进制字符串转换为C 中的小数线
- 将BSTR HEXA小数线转换为C 中的字节 *
- 如何将标准::时间::time_point转换为带有秒小数部分的日历日期时间字符串?
- C++ 将数字的小数部分转换为整数
- 在C++中使用atof将带小数的字符串转换为双精度字符串
- 将 13 位小数转换为日期时间
- 将定点小数转换为二进制
- 使用 _wtol 进行小数转换