通过判断整数a的二进制表示中的某一位是否为1,可确定a的某些特性。例如,若a的第0位(最低位,从右向左计数)为0,则a是偶数,否则是奇数。现要求通过函数GetDigit()统计在范围[1, n](包含1和n)内指定的二进制位为1的所有整数。 函数原型要求为:int* GetDigit(int n, int pos, int *d); 其中n和pos均为正整数,且二进制位位置形参pos<=31,指针形参d指向用于保存满足条件的整数个数的变量。函数返回记录满足条件的所有整数构成的动态数组首地址。
时间: 2023-02-20 17:03:28 浏览: 110
要通过函数`GetDigit()`统计在范围[1, n]内指定二进制位为1的整数,需要对范围内的每个数进行判断,如果满足条件,则将该数记录在动态数组中,最后返回该数组的首地址。判断的方法是,先将整数移位,将第pos位移动到第0位,再进行&运算,如果结果为1,说明第pos位是1,则记录该数。
阅读全文