`
hanyh
  • 浏览: 237177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

负数赋值给unsigned int有什么结果?

c 
阅读更多
#include <iostream>
#include <stdio.h>

int main() {
    unsigned int p = -1;
    printf("%d\n",p);
    std::cout << p <<std::endl;
    return 0;
}


ubuntu下编译执行
-1
4294967295
c++里面,负数会被解释为位模式,-1的位模式为:
0xFFFF
分享到:
评论

相关推荐

    深入解析unsigned int 和 int

    首先,我们要明确一点,int 类型默认是有符号的,意味着它可以表示正数、零和负数。在大多数现代计算机系统中,int 占用32位,其取值范围是-2^31到2^31-1,即-2,147,483,648到2,147,483,647。这个范围是通过将最高位...

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

    这是因为`nums.size()-1`确实得到一个无符号的最大值,但在将其赋值给`int i`时,编译器会进行截断转换,而非扩展。这意味着`int i`被赋予了一个非常大的负数,即`-1`。由于循环条件是`i&gt;=0`,所以在转换后的`int i`...

    学习C语言的三种整型数据类型之intshortint和longint.pdf

    6. unsigned short int(简写:unsigned short),无符号整数,不能表示负数。 7. unsigned long long int(简写:unsigned long long),C99添加的类型,无符号整数。 所有没有标明unsigned的整数类型默认都是有...

    short与int转换的小例子

    当`short`类型的数据赋值给`int`或`unsigned int`时,会发生类型提升。对于负数,`short`类型(通常是16位)的二进制表示会进行符号扩展。这意味着最左边的符号位(在16位系统中是第15位)会被复制到剩余的所有高位...

    C++ primer习题第二章

    在C++中,当混合`int`和`unsigned`时,`int`会被提升为`unsigned`,因此`i - u`的结果会是4294967254,而`u - i`的结果为32。 #### Exercise 2.5: 字面量类型 1. **字符和字符串**: - `'a'` 和 `L'a'`: 分别表示...

    2013腾讯实习生招聘笔试题目及其答案解析(pdf)

    当它被赋值给`unsigned int b`时,尽管`b`可以容纳更大的数值,但由于`a`的值被视作有符号数,因此`b`的值为`0xffffffe0`,这是`-32`在32位无符号整数中的表示形式。同样地,当`a`被赋值给`unsigned char c`时,由于...

    (3.7.3)--课件:(3)数据类型的转换1

    例如,将一个short(16位)赋值给一个int(32位),如果short是负数,那么在扩展时会保留符号位,其余位用1填充(符号扩展),如果是正数则用0填充(零扩展)。反之,当一个较大的数据类型被赋值给一个较小的数据...

    char short int 范围测试程序

    在C语言中,`char`、`short`和`int`是三种基本的整数类型,它们各自有特定的数值范围。理解这些类型的范围对于编写高效且无错的C程序至关重要。下面我们将深入探讨这些数据类型及其在C语言中的应用。 `char`类型在...

    第2章-c语言学习PPT文档.pptx

    1. 整型:包括`int`、`short int`、`long int`以及它们的无符号版本`unsigned int`、`unsigned short int`和`unsigned long int`。`int`通常占用2个字节(16位),`short int`占用2个字节,`long int`占用4个字节。...

    C语言数据类型转换.ppt

    • char型数值赋给int型变量时,一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。 7.4 int型与long 型转换: • long型数据赋给int型变量时,将低16位...

    3项目三数据类型、运算符与表达式C语言程序设计上机指导.docx

    signed 整型可以表示负数,而 unsigned 整型只能表示非负数。 在实验中,我们将讨论不同的整型数据类型,例如 int、long、short 等,并了解它们的取值范围和应用。 三、字符型数据类型 字符型数据类型用于存储...

    C语言按位运算符详解

    对于有符号整数,右移时高位会填充原来的符号位(正数填充0,负数填充1),而对于无符号整数则填充0。 例如: ```c unsigned int value = 65372U; // 1111111101011100 unsigned int result = value &gt;&gt; 2; // Shift ...

    C语言基础知识习题.pdf

    的结果非常大,因此需要使用unsigned long类型来表示,否则会超出int、long和unsigned long的数值范围。 5. 标识符:C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 6. ...

    C语言数据类型转换PPT课件.pptx

    char 型数值赋给int 型变量时,一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char 型数据值大于127,就作为负数处理。 * int 型与long 型:long 型数据赋给int 型变量时,将低16位值送给int ...

    C语言程序设计-整型数据.pptx

    sum2是unsigned int类型,所以当它与负数相加时,结果被解释为无符号整数,导致了非预期的结果。 5. **内存占用**: - 表2.1给出了不同整型变量的取值范围和字节长度,这对于理解数据溢出和计算效率非常重要。 ...

    程序源码 

    ` 当将负数赋值给无符号类型变量时,会进行隐式类型转换,结果是该类型能表示的最大值减去原始值的绝对值。 4. 输入输出处理:`fflush(stdin);` 通常,不应使用`fflush(stdin)`来清除输入缓冲区,因为这是未定义的...

    (2.3)--C语言中的整数1

    `将-1赋值给`int`变量,然后将其打印为无符号整数,结果是4294967295,因为-1的补码表示被解释为无符号整数。 - `unsigned u = 2147483648;`超出32位无符号整数的范围,因此,2147483648被解释为无符号整数时,会...

    新标准C++习题解答chapter1-101

    - **自动类型转换与强制类型转换**:例如,当一个unsigned short(如0xffff)被赋值给int(n3)时,数据不会溢出;但赋值给short(n4)时,可能会导致符号位变化,n4变为-1。 9. **运算符优先级**: - 表达式`a =...

    2011年至2013年计算机基础与程序设计考题及答案全案.doc

    20. 该程序的运行结果是 1,因为 printf 函数将 unsigned int 类型的变量 x 的值作为整数输出。 本资源摘要信息涵盖了计算机基础与程序设计的多个方面,涵盖了计算机处理信息的单位、硬件系统、转义字符、编程语言 ...

Global site tag (gtag.js) - Google Analytics