📜  C中的int(1个符号位+ 31个数据位)关键字

📅  最后修改于: 2021-05-26 03:34:43             🧑  作者: Mango

在C编程语言中,最常用的关键字’int’用于定义任何正整数或负整数。但是,整数和数字之间可以使用关键字“ int”表示。并非每个整数都可以用关键字“ int”表示。根据MinGW,一个“ int”的大小为4个字节,等于32位(1个字节= 8位)。 “ int”可以表示整数还是使用“ int”表示整数仍然是一个神话。整数是非常庞大的数字类别,而一个“ int”具有有限且精确的内存量(“ int”的大小为4字节或32位)来存储它所表示的内容。

签名整数

C语言中的“ int”类型变量只能存储数字,直到2147483647。超过此数字,“ int”无法精确存储,甚至不能正确存储。 “ int”是32位数据类型。每当将数字分配给“ int”类型的变量时,都会先将其转换为二进制表示形式(即0和1),然后将其保存在特定位置的内存中。 “ int”实际上是1个符号位+ 31个数据位,即31位可用于存储分配给“ int”类型变量的数字,而保留1位用于保留数字的正负号,即+或-该符号还用二进制数字表示,0代表正号,1代表负号。

让我们通过示例来了解这一点。
范例–考虑一下,

int num=2147483647; 

此时,第一个2147483647将被转换为其等于以下形式的二进制形式:
1111111111111111111111111111111。

1111111111111111111111111111111111是一个31位二进制数,它将分配给变量num的最右边的31位,而第32位将具有零(0),因为分配给变量num的数字是一个正数。如果我们尝试将大于2147483647的任何数字存储到“ int”类型变量中,那么我们将丢失信息。

无符号整数

对于无符号整数,只能存储正数。在此数据类型中,所有32位将保留用于数据存储。因此,可以存储的最大值为4294967295。无符号整数的格式说明符为“%u”。

可以存储在无符号整数中的最大值

(11111111111111111111111111111111111)2 =(1×2³¹)+(1×2³⁰)+(1×2²⁹)+(1×2²⁸)+(1×2²⁷)+(1×2²⁶)+(1×2²⁵)+(1× 2²⁴)+(1×2²³)+(1×2²²)+(1×2²¹)+(1×2²⁰)+(1×2¹⁹)+(1×2¹⁸)+(1×2¹⁷)+(1×2¹⁶) +(1×2¹⁵)+(1×2¹⁴)+(1×2¹³)+(1×2¹²)+(1×2¹¹)+(1×2¹⁰)+(1×2⁹)+(1×2⁸)+( 1×2⁷)+(1×2⁶)+(1×2⁵)+(1×2⁴)+(1×2³)+(1×2²)+(1×2¹)+(1×2⁰)=(4294967295) ₁₀

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。