嵌入式-C基础-2024.7.11作业

 作业题目
1.请计算90的十六进制形式_________。           printf("%#x\n", 90)     %#x以16进制形式打印整数
2.请计算-90的十六进制形式_________。          printf("%#x\n", -90);
3. char型数据在微机中储存值为0xc0,则printfl以%d 打印值为_________(要求写出运算过程)
4. int a = 10, b=20;要求编写一段程序,结束后,a=20,b=10 (三杯水交换)
 

解析:

1.请计算90的十六进制形式____0x5A_____。           printf("%#x\n", 90)     %#x以16进制形式打印整数

数值90的源码、反码、补码:

源码:01011010

反码:01011010

补码:01011010

因为90是一个整数,所以源码、反码、补码一致。

90的十六进制数为  0x5A

用pringf("%#x\n",90)打印

结果为

2.请计算-90的十六进制形式___0xa6______。          printf("%#x\n", -90);

首先,需要将-90转换为补码表示

数值-90的源码、补码、反码为:

源码:11011010

反码:10100101

补码:10100110

因为数值-90,是一个负数,所以,符号位数不动,其余位数取反

-90的十六进制形式为 0xa6

编译结果为

3.char型数据在微机中储存值为0xc0,则printfl以%d 打印值为____-64_____(要求写出运算过程)

0xc0的二进制形式:11000000

最高位符号位为1,为负数

将0xc0转换成十进制: 0xc0 = 12 * 16 + 0 = 192

确定符号位并计算数值:

根据有符号字符型的规则,11000000的最高位是1,表示负数。剩余位(1000000)的值是64。 因此,负数的值为 - (128 - 64) = -64

所以,0xc0作为有符号字符型数据在打印时,应该打印为  -64

4. int a = 10, b=20;要求编写一段程序,结束后,a=20,b=10 (三杯水交换)

程序如图所示:

编译结果如图:

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值