Home > Backend Development > C#.Net Tutorial > What is the value range of data int in C language?

What is the value range of data int in C language?

烟雨青岚
Release: 2020-06-30 11:18:01
Original
19618 people have browsed it

In C, int occupies 4 bytes, 32 bits, and the data range is -2147483648~2147483647[-2^31~2^31-1]. The int type data is a signed integer data, and its highest bit is the sign bit (0 means positive, 1 means negative).

What is the value range of data int in C language?

In C, int occupies 4 bytes, 32 bits, and the data range is -2147483648~2147483647[-2^31~2^31- 1].

Detailed answer process, taking two bytes as an example:

In C, int type data is a signed integer data, and its highest bit is the sign bit ( 0 means positive, 1 means negative).

1 byte is equivalent to 8 binary bits. In many computer systems, two's complement is usually used to represent signed numbers (complementary system).

Original code: The highest bit is the sign bit (0 means positive, 1 means negative), and the other bits represent the absolute value of the number in the usual way.

Inverse code: For a signed book, the inverse code of a positive number is the same as its original code, and the inverse code of a negative number is the bitwise inversion of all bits of the original code except the sign bit.

Complement code: The complement code of a positive number is the same as its original code, and the complement code of a negative number is its inverse code with 1 added to the lowest bit.

Two bytes, so the maximum binary original code is 0111 1111 1111 1111 = 2^15 - 1 = 32767.

The minimum is 1111 1111 1111 1111 = - (2^15 - 1) = -32767.

The expression of 0 in the original code can be divided into positive and negative [0] original = 0000 0000 0000 0000; [-0] original =1000 0000 0000 0000.

So when expressed in binary original code, the range is -32767 ~ -0 and 0 ~ 32767. Because there are two 0s, the number of different values ​​is 2^16 - 1.

When the computer uses two's complement code to store data, the representation of 0 is unique: [0] complement = [-0] complement = 0000 0000 0000 0000

At this time, the positive number encoding No change, from 0000 0000 0000 0000 ~ 0111 1111 1111 1111 still represents 0 ~ 32767.

Negative numbers indicate that the complement code must be followed, that is, the complement code of -32767 is 1000 0000 0000 0001.

So there will be one more code in the complement code than the original code. This code is 1000 0000 0000 0000, because it is impossible for any original code to become 1000 0000 0000 0000 when converted into a complement code, so people It is specified that the one's complement encoding of 1000 0000 0000 0000 is -32768.

Conclusion: When int type data occupies two bytes, it can represent 2^16 changes. The highest bit is the sign bit, so there are 2^15 changes in positive and negative, because 0 also occupies one type, so The maximum value of positive and negative numbers is not symmetrical, that is, the value range of this int type data is -32768 ~ 32767.

What is the value range of data int in C language?

Extended information:

int Usage method:

Definition method:

int i;//Define integer variable i

int i=1;//Define integer variable i and initialize it to 1

Define constant:

const int i ;//Compilation error, because constants need to be given an initial value

const int i=1;//Define constant i with a value of 1

Java defines constants:

final int i=1;//Define constant i with a value of 1

Recommended tutorial: "C Language"

The above is the detailed content of What is the value range of data int in C language?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template