我要做的是从存储二进制数的整数创建汉明码起点。 所以对于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;
}
答案 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;
}