繁体   English   中英

C:使用位转换为整数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM