c加加十进制转二进制
时间: 2023-09-14 22:11:52 浏览: 88
将十进制数转换为二进制数,可以使用“除2取余,逆序排列”的方法。具体步骤如下:
1. 将十进制数不断地除以2,直到商为0为止,记录每次的余数(0或1)。
2. 将得到的余数按照得到的顺序倒序排列,得到的就是对应的二进制数。
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n; // 待转换的十进制数
cin >> n;
int bin[32]; // 用数组存储二进制数
int i = 0; // 记录余数的下标
while (n > 0) {
bin[i] = n % 2;
n = n / 2;
i++;
}
// 输出二进制数
for (int j = i - 1; j >= 0; j--) {
cout << bin[j];
}
cout << endl;
return 0;
}
```
注意:这里假设二进制数最多有32位,因此用一个长度为32的数组存储。如果需要支持更长的二进制数,需要使用动态数组或其他数据结构。
相关问题
c加加十六进制转十进制
C++中可以使用`std::stoi`函数将十六进制字符串转换成十进制数。示例如下:
```c++
#include <iostream>
#include <string>
int main() {
std::string hex_str = "1A"; // 十六进制字符串
int dec_num = std::stoi(hex_str, nullptr, 16); // 将十六进制字符串转换成十进制数
std::cout << "Hexadecimal string: " << hex_str << std::endl;
std::cout << "Decimal number: " << dec_num << std::endl;
return 0;
}
```
输出结果为:
```
Hexadecimal string: 1A
Decimal number: 26
```
将八进制转换为十进制c加加
将八进制数转换为十进制在C语言中可以使用`atoi()`函数或者手动进行计算。这里简单介绍一种手动转换的方法。假设有一个八进制字符串,例如"0754",你可以通过按位相乘和求和的方式将其转换:
```c
#include <stdio.h>
int octal_to_decimal(const char* octal_str) {
int decimal = 0;
int power = 0;
// 遍历八进制字符串从右到左
for (int i = strlen(octal_str) - 1; i >= 0; i--) {
int digit_value = octal_str[i] - '0'; // 把字符转换成对应的数值(0-7)
decimal += digit_value * pow(8, power); // 8的power次方表示每一位的权重
power++;
}
return decimal;
}
int main() {
const char* octal_num = "0754";
int decimal_num = octal_to_decimal(octal_num);
printf("八进制 %s 转换为十进制是:%d\n", octal_num, decimal_num);
return 0;
}
```
运行上面的程序,你会得到"0754"转为十进制的结果。
阅读全文