C语言学习第二天Xmind笔记和作业

学习目标:

C语言学习第二天Xmind笔记和作业


学习内容:

C语言学习第二天


作业:

1.将data中的第[7:4]位置1,保持其他位不变。[7:4]表示4-7bit位
答:

#include <stdio.h>
int main(int argc, const char *argv[])
{
	unsigned char data;
	data=data | (0x0F<<4);
	printf("%#x\n",data);
	return 0;
}

运行结果:

0x1linux@linux:~/zuoye230711/day2$ gcc z3.c -o z3.out
linux@linux:~/zuoye230711/day2$ ./z3.out
0xf0

2.思考如何交换两个数
答:使用异或法交换两个数。

    int a = 3;
	int b = 5;
	a = a ^ b;
	b = b ^ a;
	a = a ^ b;
	printf("a=%d b=%d\n", a, b);

虚拟机终端运行结果:

linux@linux:~/zuoye230711/day2$ gcc z1.c -o z1.out
linux@linux:~/zuoye230711/day2$ ./z1.out
a=5 b=3

3.把课上位运算的第2题,再整理一遍
题目:有unsigned char a; 1111 1111 ---->bit默认从0开始
给a的第6个bit置1—>或 a | 0100 0000 a|(0x1<<6)
给a的第4个bit置0—>于 a & 1110 1111 ~(0001 0000) = 1110 1111 a&~(0x1<<4)
给a的第5个bit取反—>异或 (同0异1) a ^ 0010 0000 a^(0x1<<5)

答:

#include <stdio.h>
int main(int argc, const char *argv[])
{
	unsigned char a;
	a = a | (0x1<<6);
	printf("给a的第6个bit位置1后a=%#x\n",a);
	a = a & ~(0x1<<4);
	printf("给a的第4个bit位置0后a=%#x\n",a);
	a=0;
	a = a ^ (0x1<<5);
	printf("给a的第5个bit位置取反后a=%#x\n",a);
	return 0;
}

运行结果:

linux@linux:~/zuoye230711/day2$ gcc z2.c -o z2.out
linux@linux:~/zuoye230711/day2$ ./z2.out
给a的第6个bit位置1后a=0x40
给a的第4个bit位置0后a=0x40
给a的第5个bit位置取反后a=0x20
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值