用strtol函数进行进制的转换

1、stroll函数:(将字符串转换为长整型)可以转换任何进制
            第一个参数:字符串开始地址;
            第二个参数:二级指针,返回字符串解析时停下来的位置
            第三个参数:x进制

int main()
{
	const char* arr = "100!";
	int flg = strtol(arr, NULL, 8);//将100转换为8进制
	printf("%d\n", flg);
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 `strtol` 函数可以更方便地将十六进制转换为十进制数。`strtol` 函数C语言中的标准库函数,可以将字符串转换为长整型数值。 下面是一个示例代码,演示如何使用 `strtol` 函数将十六进制字符串转换为十进制整数: ```c #include <stdio.h> #include <stdlib.h> int main() { const char *hex = "1A"; char *endPtr; long decimal = strtol(hex, &endPtr, 16); if (*endPtr != '\0') { printf("Invalid hex input: %s\n", hex); return 0; } printf("Hex: %s\n", hex); printf("Decimal: %ld\n", decimal); return 0; } ``` 在上面的示例中,我们使用字符串 `"1A"` 作为示例输入。`strtol` 函数的第一个参数是要转换的字符串(`hex`),第二个参数是一个指向 `char` 类型指针的指针(`endPtr`),用于存储在转换过程中遇到的第一个非法字符的位置。 通过将第三个参数设置为 `16`,我们告诉 `strtol` 函数将输入字符串视为十六进制数。转换后的结果将存储在 `decimal` 变量中。 然后,我们检查 `endPtr` 是否指向字符串结束符 `\0`。如果不是,则表示输入字符串中包含非法字符,我们将打印相应的错误消息。 最后,我们打印原始的十六进制字符串和转换后的十进制数。 运行上述代码,将得到以下输出: ``` Hex: 1A Decimal: 26 ``` 这表明十六进制数 `1A` 被成功转换为了十进制数 `26`。你可以根据需要修改示例代码,并用其他的十六进制字符串进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值