C语言中的正负数及其输出

本文介绍了C语言中正负数的表示方法,包括符号位的使用,以及如何通过unsigned关键字创建无符号数。讨论了无符号数的输出格式,如八进制、十进制和十六进制,并指出尽管printf函数可以输出有符号数,但并不支持负数的八进制或十六进制输出。文章通过实例解析了不同格式控制符对有符号和无符号数的影响,揭示了输出结果可能与预期不同的原因。
摘要由CSDN通过智能技术生成

在数学中,数字有正负之分。在C语言中也是一样,short、int、long 都可以带上正负号,示例

//负数
short a1 = -10;
short a2 = -0x2dc9;  //十六进制
//正数
int b1 = +10;
int b2 = +0174;  //八进制
int b3 = 22910;
//负数和正数相加
long c = (-9) + (+12);

如果不带正负号,默认就是正数。

符号也是数字的一部分,也要在内存中体现出来。符号只有正负两种情况,用1位(Bit)就足以表示;C语言规定,把内存的最高位作为符号位。以 int 为例,它占用 32 位的内存,0~30 位表示数值,31 位表示正负号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值