c 语言 怎么识别二进制.八进制.十六进制.十进制
时间: 2023-12-12 17:02:54 浏览: 52
在C语言中,可以使用以下方式识别不同进制的数字:
- 二进制:以数字0b或0B开头,后跟二进制数字(0或1)序列,如0b101010。
- 八进制:以数字0开头,后跟八进制数字(0~7)序列,如0123。
- 十六进制:以数字0x或0X开头,后跟十六进制数字(0~9、a~f或A~F)序列,如0xff。
- 十进制:不以任何前缀开头,直接是数字序列,如123。
以下是一个简单的示例代码,可以根据用户输入的字符串识别数字的进制:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[20];
long dec;
int base = 10;
printf("请输入一个数字:");
scanf("%s", str);
// 判断数字的进制
if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X')) {
base = 16;
} else if (str[0] == '0') {
base = 8;
} else if (str[0] == 'b' || str[0] == 'B') {
base = 2;
}
// 转换为十进制
dec = strtol(str, NULL, base);
printf("数字 %s 的十进制值为:%ld\n", str, dec);
return 0;
}
```
在实际开发中,还需要考虑输入的字符串是否合法(如是否包含非法字符),需要进行相应的处理。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)