整数二进制比较()

python练习题.整数二进制比较

题目:
1.定义一个函数,参数为一个整数列表,返回该列表中整数的二进制中1最多的整数(如果数量相同,则返回第一个)
如:整数列表为[45,23,12,7],则对应的二进制为[101101,10111,1100,0111],前两个的1数量相同,则返回值为45

这是小白的蠢萌解法:
在这里插入图片描述
`输出结果:在这里插入图片描述
注:如果大家有更简单的方法,还希望大佬不吝赐教,共同进步!!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 C 语言,长整数类型可以使用 `long long` 或 `unsigned long long` 关键字进行声明。下面是一个示例程序,演示如何将长整数转换为二进制和十六进制: ```c #include <stdio.h> int main() { unsigned long long num = 1234567890123456789ULL; printf("二进制表示:%llx\n", num); printf("十六进制表示:%llx\n", num); return 0; } ``` 在上面的程序,`%llx` 格式控制符用于打印一个整数的十六进制表示,`%llu` 格式控制符用于打印一个无符号长整数的十进制表示。 如果需要将长整数转换为二进制字符串,则可以使用以下代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> char* to_binary_string(unsigned long long num) { char* str = (char*) malloc((sizeof(num) * 8 + 1) * sizeof(char)); memset(str, 0, (sizeof(num) * 8 + 1) * sizeof(char)); char* p = str; int i; for(i = 0; i < sizeof(num) * 8; i++) { *p++ = (num & (1ULL << (sizeof(num) * 8 - i - 1))) ? '1' : '0'; } return str; } int main() { unsigned long long num = 1234567890123456789ULL; char* binary_string = to_binary_string(num); printf("二进制表示:%s\n", binary_string); free(binary_string); return 0; } ``` 这个程序,`to_binary_string()` 函数接收一个整数参数,并返回一个指向该数的二进制字符串的指针。在函数内部,我们使用位运算和循环来将数字转换为二进制字符串。在主函数,我们调用 `to_binary_string()` 函数,并打印字符串。请注意,我们需要释放内存,以避免内存泄漏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jancy、

知识付费,支持一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值