• C++ 无符号类型


    无符号类型 unsigned 和 带符号类型 signed

    带符号类型可以表示0,正数,负数,无符号类型则仅能表示大于等于0的数

    类型转换

    类型所能表示的值的范围决定了转换的过程

    • 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数
    	unsigned u = 10;
    	int i = -42;
    	//u+i,相加前首先把整数-43转换成无符号数(把负数转换成无符号数类似于直接给无符号数赋一个负值)
    	//因为int是32位,因此它能表示数值总数位2^32,所以-42转换为无符号数=(-42+2^32)=4294967254
    	// 4294967254+19=4294967264 即输出结果
    	cout<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    错误案例

    // 由于无符号数永远不会小于0,因此这是个死循环
    for(unsigned i = 10;i>=0;i--)
    cout<
    • 1
    • 2
    • 3
  • 相关阅读:
    【FPGA】FPGA入门 —— 基本开发流程
    【方法封装】时间格式化输出,获取请求设备和IP
    体系结构28_多处理机(2)
    C语言如何判定循环结束和提前结束?
    成功实施自动化测试的优点
    动态内存函数笔试题
    6.流程控制
    【操作系统】进程、线程和协程相关问题
    java-net-php-python-jsp学生社团信息演示录像2019计算机毕业设计程序
    Flutter 挖孔屏的状态栏占用问题怎么解决,横屏后去掉了状态栏,还是会有一块黑色的竖条
  • 原文地址:https://blog.csdn.net/weixin_47020721/article/details/132801940