C语言基础 - 20230426

C语言 - 20230426

一. 思维导图

请添加图片描述

二. 练习

1.有以下变量求输出结果

signed char c = 178;
printf(“%d\n”,c);
printf(“%u\n”,c);
unsigned char d = -9;
printf(“%d\n”,d);
printf(“%u\n”,d);
并写出数据存储和取出的过程

1)signed char c = 178;printf(“%d\n”,c);
step1: 178转二进制: 1011 0010
输入原反补: 1011 0010
输出反: 1011 0001
输出原: 1100 1110
step2:输出%d
11001110
第一位1表示负号。
01001110 = 2的1次方 + 2的2次方 + 2的3次方 + 2的6次方
= 2 + 4 + 8 + 64
= 78

最终输出-78

2)signed char c = 178; printf(“%u\n”,c);
c=-78
输入原码:1000 0000 0000 0000 0000 0000 0100 1110
输入反码:1111 1111 1111 1111 1111 1111 1011 0001
输入补码:1111 1111 1111 1111 1111 1111 1011 0010

输出补码:1111 1111 1111 1111 1111 1111 1011 0010
输出反码:1111 1111 1111 1111 1111 1111 1011 0010
输出原码:1111 1111 1111 1111 1111 1111 1011 0010
0xFFFFFFB2
最终输出:4294967218

3) unsigned char d = -9;printf(“%d\n”,d);
输入原码:1000 1001
输入反码:1111 0110
输入补码:1111 0111

输出原,反,补:0000 0000 0000 0000 0000 0000 1111 0111

最终输出:247

4)unsigned char d = -9;printf(“%u\n”,d);
输入原码:1000 1001
输入反码:1111 0110
输入补码:1111 0111

输出原,反,补:0000 0000 0000 0000 0000 0000 1111 0111

最终输出:247

2.求-57的原码,反码,补码

原码: 1011 1001
反码: 1100 0110
补码: 1100 0111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值