day2/0711作业

本文详细阐述了二进制数的原码、反码和补码表示,特别是负数的处理。同时,讨论了C语言中无符号数和有符号数的输出差异,以及宏定义在计算过程中的展开。此外,还介绍了C程序从源代码到可执行文件的编译过程,包括.i、.s、.o文件阶段。最后,给出了宏定义的计算示例,展示了解析和求值的过程。
摘要由CSDN通过智能技术生成

1.求下列数据的原码、反码和补码:
a.-35
原码:1010 0011
反码:1101 1100
补码:1101 1101
b.-124
原码:1111 1100
反码:1000 0011
补码:1000 0100
c.-85
原码:1101 0101
反码:1010 1010
补码:1010 1011
d.-113
原码:1111 0001
反码:1000 1110
补码:1000 1111

2.求下列数据的输出结果:
a.unsigned char c = -10;  %u无符号输出结果:
输入:-10的原码:1000 1010
反码:1111 0101
补码:1111 0110
输出:补码:1111 0110
无符号,默认输出正的,所以原码=反码=补码
%u无符号输出结果为246
b.signed char  p = 213;%d有符号输出的结果:
输入:213的补码=反码=原码=1101 0101
输出:补码:1101 0101
反码:1101 0100
原码:1010 1011
%d有符号输出的结果为171

3.思维导图:

4.第一个C语言程序,分步编译并查看每一步的结果

.i文件:

.s文件:     

       .o文件:

可执行文件:

 

5.求下列宏定义的输出结果:
#define N 10
#define M N*2+4
#define NUM  M*N/M*3+M

N:10;
M:  10*2+4 = 24;
NUM:10*2+4*10/10*2+4*3+10*2+4
    =20+8+12+20+4
        =64;

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值