[英]C : convert to integer using bits
C:使用位转换为整数
我需要从0、1的位数组中获取整数值。
我想传递整数数组并使用位运算符获取十进制数。
以下是我尝试的尝试,但是当我尝试传递int数组时不起作用,它可以与char * array一起使用 。 有什么方法可以传递int数组并将其转换为十进制数? 我想使用位运算符。
int toInt(int* bin_arr) {
int val = 0;
while (*bin_arr)
val = (val << 1) | (*bin_arr++ == '1');
return val;
}
提前致谢。
您的循环条件假定该数组以0结尾,这对字符串有效,但对整数数组无效。 解决此问题的一种方法是将一个length参数与int指针一起传递,这样您就知道何时停止迭代。
另外,在此表达式中:
(*bin_arr++ == '1')
如果要传递整数而不是字符,则应删除单引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.