c语言作业题11.11/12

本文通过多个实例展示了如何使用C语言进行位操作,包括设置、清除、读取特定位及位段,以及如何对指定位进行赋值和修改等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。

# include<stdio.h>
//1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。
int main()
{
    unsigned int a = 0xffff1234;
    a *= ~(0x8);
    a += 0x8;
    printf("a = 0x%x\n",a);
    return 0 ;
}

3.给定一个整型数a,清除a的bit15,保证其他位不变。

#include<stdio.h> 
//3.给定一个整型数a,清除a的bit15,保证其他位不变。
int main()
{
    unsigned int a = 0xffffffff;
    // a &= ~(0x1 << 15);
    printf("a = 0x%x\n",a &= ~(0x1 << 15));
    return 0;
}

4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。

#include<stdio.h>
//4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。
int main()
{
    unsigned int a =0xffffffff;
    a = ~(0x1ff << 15) & a;
    printf("a = 0x%x\n",a);
    return 0;
}

5.给定一个整形数a,取出a的bit3~bit8。

#include<stdio.h>
//5.给定一个整形数a,取出a的bit3~bit8。
int main()
{
    unsigned int a =0xffffff4f;
    a= a & (0x3f << 3);
    a = a >> 3;
    printf("a = 0x%x\n",a);
    return 0;
 }

6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。

#include<stdio.h>
// 6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。
int main()
{
    unsigned int a = 0xffffffff;
    a &= ~(0x7ff << 7);
    a += (937 << 7);
    printf("a = 0x%x\n",a);
    return 0;
}

7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。

#include<stdio.h>
// 7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。
int main()
{
    unsigned int a = 0x12345678;
    a += (17 << 7);
    printf("a = 0x%x\n",a);
    return 0;
}

8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.

#include<stdio.h>
// 8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.
int main()
{
    unsigned int a = 0x12345678;
    a &= ~(0x7ff << 7);
    a += (937 << 7);
    a &= ~(0x1f << 21);
    a += (17 << 21);
    printf("a = 0x%x\n",a);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值