C/C++里一些常用的变量类型的范围及相关解释

本文详细介绍了C/C++中char类型的有符号和无符号取值范围,通过补码的原理解释了从127到-128的转换,并指出unsigned char类型的死循环现象。此外,还讲解了浮点类型float的存储结构,包括符号位、指数和尾数,明确了其指数范围和数值范围。最后,提到了相关测试程序的来源。
摘要由CSDN通过智能技术生成

C/C++里一些常用的变量类型的范围
1、关于char的取值范围
(1)char占一个字节,每个字节有8位。char又分为有符号型(signed char)和无符号型(unsigned char)。
这二者的不同之处就在于有符号型将最高位作为了符号位,0代表正数,1代表负数。
无符号型的取值范围为0-255(2^8-1),这个很容易理解,因为char型只有8位。
有符号型的取值范围位-128(-2^ 7-1)~127(2^7-1)
出现这种情况是因为计算机是以补码的形式来存储数值的,
而补码有一条规则:正数的补码是其本身,负数的补码是其取反(取反时符号位不变)加一得到。
若说负0与正0则是针对原名来说的:
127:0111,1111 (反码):1111,1111 (补码):1111,1111
0:0000,0000 (反码):0000,0000 (补码):0000,0000
-1:1000,0001 (反码):1111,1110 (补码):1111,1111
-2:1000,0010 (反码):1111,1101 (补码):1111,1110

-127:1111,1111 (反码):1000,0000 (补码):1000,0001
-128:1000,0000 (反码):1111,1111 (补码):1000,0000
当我们对127+1的时候,所得到的结果就是-128.在我看来,主要是对于符号位的理解。当自己整理一遍后,就会对其有了深刻的认识。

(2)unsigned char范围是0~255
执行下面这个循环的时候会发现其

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值