用c语言函数编写一个代码,功能是:将长整型数中各位上为偶数的数依次取出,并按由小到大的顺序,构成一个新的数并放在t中。
时间: 2023-03-15 14:21:33 浏览: 106
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语言写一个从低位开始取出长整型s上的偶数位上的数,依次构成一个新数
可以使用位运算和循环实现该功能,具体代码如下:
```c
#include <stdio.h>
unsigned long get_even_bits(unsigned long s) {
unsigned long new_num = 0;
int even_bit = 0;
while (s) {
// 取出偶数位上的数
even_bit = s & 0x2;
// 将偶数位上的数加入到新数中
new_num = (new_num << 1) | (even_bit >> 1);
// 右移两位,移除已取出的偶数位
s >>= 2;
}
return new_num;
}
int main() {
unsigned long s = 0x123456789abcdef0;
unsigned long new_num = get_even_bits(s);
printf("原数为:%016lx\n", s);
printf("偶数位上的数构成的新数为:%016lx\n", new_num);
return 0;
}
```
输出结果为:
```
原数为:123456789abcdef0
偶数位上的数构成的新数为:2468ace0
```
其中,`get_even_bits`函数接收一个无符号长整型数`s`作为参数,返回一个无符号长整型数,该函数实现了从低位开始取出`s`上的偶数位上的数,依次构成一个新数的功能。主函数中,我们使用一个示例数`0x123456789abcdef0`来测试上述函数的功能,并输出运行结果。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)