我需要使用C编程将20位十进制转换为二进制。 我将创建什么缓冲区,因为它会非常大,即使计算器也无法计算将20位数转换为二进制数。
这是我打算完成的样本:
我假设这段代码:我通过键盘输入缓冲区。 同时,我使用的是AT85C55WD Mcu。
unsigned char idata token [20] =(2,3,5,6,3,3,4,4,3,2,4,4,6,7,4,3,4,5,3,3);
我想要一个结果
type-define variable convrt_token = 23562244324467434533;
这可能使用C吗? 如果是的话,那我该怎么办呢?
这是一个优雅的解决方案…. ?
#include #include #include #include #include #include #include #define max 10000 #define RLC(num,pos) ((num << pos)|(num >> (32 - pos))) #define RRC(num,pos) ((num >> pos)|(num << (32 - pos))) void tobinstr(int value, int bitsCount, char* output) { int i; output[bitsCount] = ' '; for (i = bitsCount - 1; i >= 0; --i, value >>= 1) { output[i] = (value & 1) + '0'; } } int main() { char s[50]; tobinstr(65536,32, s); printf("%sn", s); return 0; }
十进制中的每个数字都有10个值,0..9。 所以你需要二进制3到4位数。 所以让我们说4保持简单。
因此,对于20位十进制,您需要一个二进制的80位数字。
你可以用字符来完成所有这一切,以保持简单。 我认为这是为了好玩。
char decnum [20]; char binnum [80];
祝好运。
从Gidon提到开始。 然后你只需要定义一个函数’decToBin’或类似的东西,你可以像这样使用:
char decnum[20]; char binnum[80]; // ... get the values, do zero initialization etc... decToBin( decnum, binnum );
你准备好了。
decToBin函数可以很容易地实现为常见的长除法算法。 那应该不会太难。
玩得开心 ;)
编辑:详细说明:
需要了解更多c/c++开发分享十进制到二进制转换,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享十进制到二进制转换相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/980589.html