`
july05122868
  • 浏览: 17295 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

int与unsigned int

J# 
阅读更多
今天同学问我一个小问题,说:
int i = -20;
unsigned int j = 10;
cout<<(i+j)<<endl;
输出的结果是多少?

我想肯定不回是-10,怎么会这么简单!自己在VC里面实验了一下,果然结果不是-10,输出的是4294967286。结果我就仔细的考虑了一下,然后有写下了下面一段:
if(i>j)
    cout<<"i is bigger"<<endl;
else
    cout<<"j is bigger"<<endl;

结果又是出人意料,输出的是“i is bigger”。

分析了一下得到了这样的结论,当编译器对两个不同类型的数字进行操作的时候,编译器会自动的都转型成范围较大的那个,以避免溢出。所以,很自然的int就被转换成了unsigned int。哈哈,这样解释就合理了。
分享到:
评论

相关推荐

    源码讲解int和unsigned int 的区别,每一位是干什么的

    ### `int`与`unsigned int`的区别 #### 值的范围 - **`int`**:这是一个有符号整数类型,它可以存储正数、负数和零。在大多数现代系统上,`int` 的大小为32位,能够表示的范围大约是从 -2,147,483,648(即 -2^31)...

    float、int、unsigned int数据与其在实际内存中表示的相互转换小程序

    在C++编程语言中,`float`、`int`和`unsigned int`是三种基本的数据类型,它们在内存中有着不同的表示方式。本程序旨在帮助开发者理解这些数据类型的内部存储机制,并提供它们之间的转换功能。这对于我们深入理解...

    volatile_unsigned_int

    标题“volatile_unsigned_int”以及描述“讲述了volatile_unsigned_int地址映射的使用说明”指向了C语言中特殊的关键词“volatile”以及其与“unsigned int”类型的结合使用。该知识点主要涉及硬件编程,特别是在...

    把unsigned int 对调

    把unsigned int 对调

    深入解析unsigned int 和 int

    我们主要来看一下signed和unsigned与int之间的联系与区别。什么叫做有符号,什么叫做无符号这个问题其实很简单,比如:5和-5,5没有符号,-5有符号。简单吧。但是在计算机中的这种符号可不简单。我们分别来看一下:在...

    Hce300B 动态连接库

    1、int ReadCard(int portnumber,int tracknumber,int timeout,unsigned char* track1,int* track1len,unsigned char* track2,int* track2len,unsigned char* track3,int* track3len) 2、int WriteCard(int port...

    HY-TFT液晶底板原理图

    void address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) { main_W_com_data(0x0020,x1);//设置X坐标位置 main_W_com_data(0x0021,y1);//设置Y坐标位置 main_W_com_data(0x0050,x1)...

    (*(volatile_unsigned_int_ *))

    在本例中,`volatile`被用于指针类型,具体是`volatile unsigned int*`和`volatile unsigned char*`,这表明通过这些指针访问的内存位置的值可能会在任何时间点被外部因素改变。 #### 3. 宏定义的具体含义 让我们...

    Keil MDK-ARM各种数据类型占用的字节数 char short int float double

    3. **int**: 在Keil MDK-ARM中,`int`同样占用4个字节(32位),这与32位ARM处理器的字长相匹配。因此,`int`的最大值为2147483647,最小值为-2147483648。 4. **long**: `long`类型在Keil MDK-ARM中也占用4个字节...

    求32位机器上unsigned int的最大值及int的最大值的解决方法

    代码如下:#include &lt;stdio&gt;int main(int argc, char *argv[]){ unsigned int max_int = 0-1; printf(“The max value of unsigned int on 32 machine: %u/n”, max_int);} 代码如下:#include &lt;stdio&gt;int main(int ...

    eeprom.rar_EEPROM int_Unsigned_intrins.h_site:www.pudn.com_换头文件e

    #define uint unsigned int #define RdCommand 0x01 //定义ISP的操作命令 #define PrgCommand 0x02 #define EraseCommand 0x03 #define WaitTime 0x01 //定义CPU的等待时间 sfr ISP_DATA=0xe2 //寄存器申明 ...

    无限深度整数,您可以把unsigned int的上限无限扩展

    用C++标准库编写,您可以把unsigned int的上限无限扩展,直至你的计算机的内存被耗尽为止。它的作用是诸如计算任意一个正整数的阶乘、执行任意长度的整数的计算等;当然,你也可以根据源码来编写整数、实数等更为...

    只需zint.h和zint.lib库,无需动态链接库,即可使用

    struct zint_symbol* my_symbol = ZBarcode_Create(); my_symbol-&gt;symbology = BARCODE_QRCODE; my_symbol-&gt;scale = 2; my_symbol-&gt;show_hrt = 0; ZBarcode_Encode_and_Buffer(my_symbol, (unsigned char *)m_key...

    stdint.h stdint.h

    - `intmax_t` 和 `uintmax_t`:这是系统能表示的最大有符号和无符号整数类型,通常对应于 `long long int` 和 `unsigned long long int`。 5. **类型别名**: - `intN_t` 和 `uintN_t`:其中 `N` 代表整数的位数...

    浅谈防不胜防的unsigned int的运算

    在进行`unsigned int`与`int`之间的运算时,如果`int`是负数,它会被转换为等值的无符号数进行计算。这是因为无符号类型不能表示负数,因此在混合类型运算中,有符号类型通常会被提升到无符号类型。 第一个例子中,...

    sizeof(int)

    unsigned 是无符号的意思,例如 unsigned int 是无符号整型。 下面是一些常见数据类型的存储空间大小: * 16 位编译器: + char:1 个字节 + char*(即指针变量):2 个字节 + short int:2 个字节 + int:2 ...

    Zint(.dll)-VS2015.rar

    typedef int (*ZINT_ENCODE)(unsigned char* out, const char* in, int len, int options); ZINT_ENCODE zint_encode = (ZINT_ENCODE)GetProcAddress(hDll, "zint_encode"); // 使用zint_encode函数进行条码编码...

    字符串哈希成数字的C实现的代码(含测试)

    typedef unsigned int (*hash_function)(char*, unsigned int len); unsigned int RSHash (char* str, unsigned int len); unsigned int JSHash (char* str, unsigned int len); unsigned int PJWHash (char* str,...

Global site tag (gtag.js) - Google Analytics