最近在学习翁恺老师的“程序设计入门——C语言”课程。在循环中有一个求数字特征值的练习题,挺有意思。
本程序实现思路:用while循环,从右往左计算。在不用幂指数的情况下,在循环中很好的实现了对当前二进制位对应十进制的值进行了转换。
数字特征值(5分)
题目内容:
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。
这里的计算可以用下面的表格来表示:
数字 |
3 |
4 |
2 |
3 |
1 |
5 |
数位 |
6 |