C语言,把一个数的二进制中的第5位变成1。

#include<stdio.h>

int main()

{

 int a = 13;

 a = a | (1 << 4);

 printf("a=%d", a);

 return 0;

}

把a的二进制中的第5位变成1。

13

00000000 00000000 00000000 00001101

1

00000000 00000000 00000000 00000001

1<<4

00000000 00000000 00000000 00010000

29
00000000 00000000 00000000 00011101

 

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将十进制字转换为二进制代码,可以使用运算符来实现。其原理是将十进制字,例如5,从最低有效开始,一次将其除以2,结果通过取余运算(%)来决定有效的1或0,然后将结果继续除以2,直至结果为0。例如,5/2=2,余是1,所以最低有效为1;2/2=1,余是0,所以次低有效为0;1/2=0,余是1,所以最高有效为1,所以5的二进制代码为101。 ### 回答2: C语言可以通过以下步骤将十进制字转换为二进制代码: 1. 首先,定义一个整型变量来保存十进制字,并赋初值。 2. 创建一个空的字符组,用于保存二进制代码。 3. 在一个循环,进行如下操作,直到十进制字变为0: a. 计算当前字的模2(即取余),并将余转换为字符类型('0'或'1')。 b. 将余字符添加到字符组的末尾。 c. 将十进制字除以2并将结果赋给十进制字变量。 4. 反转字符的字符顺序,可以使用循环或其他方法实现。 5. 最后,打印或使用该字符组,即可得到转换后的二进制代码。 这个方法的原理是二进制是以2为基的,每一上的值是2的 n 次方,其 n 是该上的置。因此,我们可以通过不断地对十进制字除以2取余,来得到转换后的二进制代码。转换后的二进制代码的最后一是原十进制字的最低,而转换后的二进制代码的第一则是原十进制字的最高。反转字符组是为了保持二进制代码的正确顺序,方便后续的调用和处理。 总之,通过不断地除以2并取余的方法,然后将余保存在字符,并将十进制字不断除以2直到为0,最终得到的字符字顺序为转换后的二进制代码。 ### 回答3: C语言可以用移运算和按与运算来将十进制字转换成二进制代码。具体实现步骤如下: 1. 首先,我们定义一个变量`num`,用来存储输入的十进制字。 2. 然后,我们定义一个整型变量`mask`,初始化为`1`,用来进行移运算生成二进制代码。`mask`的初始状态为二进制的最低为1,其余都是0。 3. 初始化一个空字符串变量`binary`,用来存储转换后的二进制代码。 4. 使用循环,开始转换过程。循环的条件是`num`大于0。在每一次循环,我们先将`mask`与`num`进行按与运算,判断`num`最低的值。若最低为1,则将字符串变量`binary`的最左边拼接字符`1`。若最低为0,则将字符串变量`binary`的最左边拼接字符`0`。 5. 然后,将`mask`左移一,即将`mask`的二进制代码向左移动一,使得下一次循环可以判断`num`的下一。 6. 将`num`右移一,即将`num`的二进制代码向右移动一,以便下一次循环可以判断`num`的下一。 7. 重复步骤4至步骤6,直到`num`等于0为止。 8. 循环结束后,变量`binary`存储的字符串即为将十进制字转换成的二进制代码。 这种方法的思路是通过一地判断十进制字的二进制代码值,并将其拼接到一个字符串,最终得到完整的二进制代码。使用移运算和按与运算能够高效地进行二进制转换,无需使用额外的学运算。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值