c语言"6. 输入一个十进制数,将其转换成二进制并输出的程序,C语言:输入一个十进制转换成二进制输出...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

btjtkk

2013.07.03

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:45%    等级:12

已帮助:7366人

程序的主要思想是:

按位与的特点是,是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。

也就是说,按位与运算有3个对象,分别是两个参与运算的两个数和运算有的结果。这个和小学学习的普通加法一样。如:a+b=c,,a,b,c分别是3个对象。同样的,与运算也是一一样的意思:a & b = c.

只不过是与的意思和加法的意思不一样而已。

根据题目要求,我们已经得到了一个参与运算的数据,就是要转换的数,现在我们需要得到转换后的数,根据与运算规则,我们构造一个数,分别和待转换的数进行与运算,得到每一位的值,要么是0,要么是1。

程序如下:

#include

int main(void)

{

const int iTimes=sizeof(int) * 8;

int iMask=1;

int x = 12345; //这个就是要转换的数

int x2[iTimes];

int i;

for( i=0 ; i

x2[i]=x & iMask;

iMask = iMask << 1;

// printf("%d",iMask);

}

printf("\n(%d)d=",x);

for( i=iTimes -1 ; i >=0 ; i-- ){

printf("%d",x2[i] ? 1 : 0 );

}

return 0;

}

03分享举报

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值