c++ unsigned int* 转int*_认识int和unsigned int的区别

本文探讨了C++中unsigned int到int的转换,并通过实例展示了两者输出结果的差异。同时,文章详细介绍了C语言中输入输出的格式控制符,包括类型控制符、标志、最小宽度、精度和类型长度等概念,帮助读者深入理解C语言的I/O操作。
摘要由CSDN通过智能技术生成

    今天我在逛网页的时候,看见了下面的一行代码:


unsigned number = 7;

  • 什么是 unsigned int ?

    当时我有被疑惑到,在我的印象里,定义数字变量时只有三种类型。于是便去百科了一下,了解到 unsigned 其实和 int 有联系的: int 整型可以划分为 带符号 的( signed )和 无符号 的( unsigned )两种,带符号类型可以表示正数、负数或0,无符号类型则 仅能 表示大于等于0的值。在默认情况下声明的 整型变量 都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned关键字。(int 整型 是计算机编程语言中的一种基本数据类型,通常反映了所用机器中整数的最自然长度。)
  • 怎么控制输出无符号整型(unsigned int)变量 ?

 我们用代码演示一下:
#include "stdio.h"int main(){
        unsigned int num_one = 5;    // 也可以 unsigned num_one = 5; 这样定义    int num_two = -7;    /*     * %u 控制输出 十进制无符号整数     * %d 控制输出 十进制有符号整数    */    printf("这是输出无符号的结果  %u\n",num_one + num_two);    printf("这是输出有符号的结果  %d\n",num_one + num_two);    return 0;}

    运行结果如下:

这是输出无符号的结果  4294967294这是输出有符号的结果  -2
  • 为什么两个结果不一样 ?

         分析上面的代码,可有发现, num_one + number_two 的值为 -2;因为
    printf("这是输出无符号的结果  %u\n",num_one + num_two);
输出的是无符号十进制整数。由于-2<0,所以输出了如上结果。 我们将上面的代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值