gpt4 book ai didi

C : convert to integer using bits

转载 作者:行者123 更新时间:2023-11-30 17:46:41 26 4
gpt4 key购买 nike

C:使用位转换为整数

我需要从 0、1 的位数组中获取整数值。

我想传递整数数组并使用位运算符获取十进制数。

以下是我尝试过的方法,但当我尝试传递 int 数组时不起作用,它适用于 char* 数组。有什么方法可以传递 int 数组并将其转换为十进制数吗?我想使用位运算符。

 int toInt(int* bin_arr) {

int val = 0;
while (*bin_arr)
val = (val << 1) | (*bin_arr++ == '1');
return val;
}

提前致谢。

最佳答案

您的循环条件假设数组以 0 结尾,这对字符串有效,但对整数数组无效。解决此问题的一种方法是将长度参数与 int 指针一起传递,以便您知道何时停止迭代。

此外,在这个表达式中:

(*bin_arr++ == '1')

如果您传递整数而不是字符,则应该删除单引号。

关于C : convert to integer using bits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com