C语言(八)原码补码和反码

本文详细介绍了C语言中如何使用原码、补码和反码表示有符号整数,强调了补码在计算中的重要性,通过代码示例展示了负数在内存中的存储形式,并解释了%d和%u在输出时的区别。

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

原码补码和反码

在这里插入图片描述
//编码就是计算机底层的0与1,如何表示数据,计算机原码表示有符号整数中的正数以及无符号整数
//对于有符号的数,0代表正数,1代表负数,对于没有符号的数就没有符号位
//正数与原码相同,可以理解为正数在计算机中按照原码来解析,而负数都是补码

#include<stdio.h>
void main()
{
/*int x = 1;
unsigned int y = 2;
printf("%x,\n%x", &x, &y);
*/
int x = -1;
printf("%x", &x);
//int 4个字节32位,所以由32位组成
//1000 0000 0000 0000 0000 0000 0000 0001 -1的原码
//1111 1111 1111 1111 1111 1111 1111 1110 -1的反码,1变0,0变1
//1111 1111 1111 1111 1111 1111 1111 1111 -1的补码,也就是反码+1
//f f f f f f f f 如果按16进制查看应该是8个f,按补码存储
getchar();

}
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值