用c语言函数编写一个代码,功能是:将长整型数中各位上为偶数的数依次取出,并按由小到大的顺序,构成一个新的数并放在t中。
时间: 2023-03-15 19:21:33 浏览: 140
int t = 0;
int k = 0;
for (int i = 0; i < sizeof(long); i++) {
int number = (long>>i) & 1;
if (number % 2 == 0) {
t = t + (number << k);
k++;
}
}
相关问题
使用c语言,用函数编写一个代码,功能是:将长整型数中各位上为偶数的数依次取出,并按由小到大的顺序,构成一个新的数并放在a中。
#include<stdio.h>
long long a;
void getEvenNumber(long long num)
{
long long temp = 0;
while (num > 0)
{
int rem = num % 10;
if (rem % 2 == 0)
{
temp = (temp * 10) + rem;
}
num /= 10;
}
a = 0;
while (temp > 0)
{
int rem = temp % 10;
a = (a * 10) + rem;
temp /= 10;
}
}
int main(void)
{
long long num;
scanf("%lld", &num);
getEvenNumber(num);
printf("%lld", a);
return 0;
}
C语言 编写函数long fun(longx),将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回,例如:下面程序运行时输入:124578902,程序输出:24802.
在C语言中,你可以通过位运算来编写一个这样的函数。这里我们假设`fun`函数会按从右到左的顺序检查每一位,并将遇到的偶数值添加进结果。下面是一个简单的示例:
```c
#include <stdio.h>
// 函数声明
long long fun(long long x);
int main() {
long long input = 124578902;
long long result = fun(input);
printf("Output: %lld\n", result); // 输出:24802
return 0;
}
// 实现函数fun
long long fun(long long x) {
long long mask = 1; // 初始化掩码,用于逐位检查
long long result = 0; // 结果存储器
while (x != 0) {
if ((x & mask) == 0) { // 检查当前位是否为偶数
result <<= 1; // 如果是偶数,左移一位并置1
} else {
result++; // 否则是奇数,直接加1
}
mask <<= 1; // 更新掩码,继续检查下一位
}
return result;
}
```
这个函数`fun`通过位与运算符`&`检查每一位,如果与1相与的结果为0,则表示该位是偶数,将其对应的二进制值(1)左移一位存入结果;如果结果不是0,则说明该位是奇数,简单地增加结果。当所有位都处理完之后,就得到了所需的偶数组成的数字。
阅读全文