C在整数的特定位置插入数字

时间:2015-02-21 23:00:47

标签: c

我要做的是从存储二进制数的整数创建汉明码起点。 所以对于1100111我想插入0,所以int看起来像11000110100 - 在1-2-4-8插入0。我是C和Java的超级新手我可能只是使用char.At()来完成它但是没有找到一种有效的方法在C中做到这一点,我想知道是否有更简单的方法来实现这一点比插入数组,我没有找到任何帮助的位操作符,谢谢。

  int convToHamVal(int binNumOne, int binNumTwo, int  *hamOne, int *hamTwo){
    //Function to do so, binNumOne/Two contain binary numbers of ASCII chars
    (length 7)

  array[0] = 0;
  array[1] = 0;
  array[2]
  array[3]
  array[4] = 0;
  array[5]
  array[6]
  array[7]
  array[8] = 0;
  array[9]
  array[10]


    return 1;
    }

1 个答案:

答案 0 :(得分:0)

我所做的是使用数组路由,因为ASCII是7位我创建了一个大小为11的数组,只是使用divide方法从dec转换为二进制并修改以获取数字并存储在数组中。然后我重新排列数组以获得汉明格式000_000_0_ _。

我研究了位字段表示法,发现它非常有用且效率更高但是时间有限,所以我采用了我理解的路线,谢谢。

int convertToBinaryOne(int binarrOne[], char ascLetters[],int *binNumOne){
/*convert from char to int*/
int decNumOne = ascLetters[0];

/*convert from dec to BINARY*/


int i, binary = 0;

    for(i = 6; decNumOne != 0; i--) {

        binary = decNumOne%2;   
        decNumOne = decNumOne/2;
        binarrOne[i] = binary;
    }