unsigned类型与int类型之间的转换

该程序展示了在C++中将无符号整型(unsigned)转换为有符号整型(int)以及反之的过程。当整数超出其原始类型范围时,转换可能导致溢出。对于无符号整型,它只表示0到2^32-1的值,超出此范围的负数会被转换为其模2^32后的值。而有符号整型则表示在-2^31到2^31-1的区间内。

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

        “感觉还是很有趣的……”

#include <iostream>
int main() {
	// 第一部分:unsigned->int
	unsigned aa;
	std::cout<<"Enter A unsigned number: ";
	std::cin>>aa;
	int aa_out=aa;
	std::cout<<"unsigned: "<<aa<<std::endl;
	std::cout<<"signed  : "<<aa_out<<std::endl;
	
	// 第二部分:int->unsigned
	// int bb;
	// std::cout<<"Enter A int number: ";
	// std::cin>>bb;
	// unsigned bb_out=bb;
	// std::cout<<"signed  :"<<bb<<std::endl;
	// std::cout<<"unsigned:"<<bb_out<<std::endl;

	return 0;
}

        以上程序分别运行后,会发现以下内容:
        一、将一个整数 x 赋给unsigned类型的变量 aa 后,他只表示 [0,2^32-1] 范围内的整数。当x<-2^32-1时,aa = 2^32-1;当-2^32-1 ≤ x ≤ -1时,aa= 2^32-|x|;当0 ≤ x<2^32-1时,aa= x;当x>2^32-1时,aa = 2^32-1;
        二、将一个整数x 赋给int类型的变量 bb 后,它只表示 [-2^31,2^31-1] 范围内的整数。当x<-2^31时,bb = -2^31;当x>2^31-1时,bb = 2^31-1。


参考资料:

  • 个人动手实践
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值