十进制数与二进制数如何转化?

xdxkxc 2005-12-10 03:45:48
现在有三个int 型变量 a,b,c;它们都是0~255之间的十进制的整数,想把它们先变成8位的二进制的数,再连接起来,成为一个24位的二进制数,再把这个二进制数变为十进制数。

拿到这个十进制数后,先把它变为24位的二进制数,再八位八位断开,得到三个8位的二进制数,再分别把这三个8位的二进制数转变为十进制数,即还原a,b,c。

请问以上过程在的MFC的环境中如何实现,谢谢大家
...全文
646 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdxkxc 2005-12-12
  • 打赏
  • 举报
回复

是可以用_itoa( i, buffer, 2 );将a,b,c,三个十进制整数(它们都是0~255之间的十进制的整数)分别变为8位的二进制数a2,b2,c2,不过有没有简单的方法将这三个二进制数联起来成为一个24位的二进制数啊?最重要的是怎么把这个24位的二进制数再断开还原成为a2,b2,c2?有没有简单的方法实现啊?


菜牛 2005-12-10
  • 打赏
  • 举报
回复
MAKELONG/MAKEWORD
shicheng521 2005-12-10
  • 打赏
  • 举报
回复
用的着那么麻烦吗?
直接操作字节不就完了
yangyzqo 2005-12-10
  • 打赏
  • 举报
回复
“想把它们先变成8位的二进制的数,再连接起来,成为一个24位的二进制数,再把这个二进制数变为十进制数。”
这一步也许要自己写函数,其它的,可以用itoa, atoi等实现,
yzhouen 2005-12-10
  • 打赏
  • 举报
回复
_itoa( i, int, 2 );
vcmute 2005-12-10
  • 打赏
  • 举报
回复
/* ITOA.C: This program converts integers of various
* sizes to strings in various radixes.
*/

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
char buffer[20];
int i = 3445;
long l = -344115L;
unsigned long ul = 1234567890UL;

_itoa( i, buffer, 10 );
printf( "String of integer %d (radix 10): %s\n", i, buffer );
_itoa( i, buffer, 16 );
printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );
_itoa( i, buffer, 2 );
printf( "String of integer %d (radix 2): %s\n", i, buffer );

_ltoa( l, buffer, 16 );
printf( "String of long int %ld (radix 16): 0x%s\n", l,
buffer );

_ultoa( ul, buffer, 16 );
printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,
buffer );
}


Output

String of integer 3445 (radix 10): 3445
String of integer 3445 (radix 16): 0xd75
String of integer 3445 (radix 2): 110101110101
String of long int -344115 (radix 16): 0xfffabfcd
String of unsigned long 1234567890 (radix 16): 0x499602d2

以此类推,24进制同理
vcmute 2005-12-10
  • 打赏
  • 举报
回复
itoa最后一个参数可设置进制

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧