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]. The int type data is a signed integer data, and its highest bit is the sign bit (0 means positive, 1 means negative).
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.
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

typedef struct is used in C language to create structure type aliases to simplify the use of structures. It aliases a new data type to an existing structure by specifying the structure alias. Benefits include enhanced readability, code reuse, and type checking. Note: The structure must be defined before using an alias. The alias must be unique in the program and only valid within the scope in which it is declared.

real is the data type used to represent double-precision floating-point numbers in C language. It occupies 8 bytes, has a precision of about 15 decimal places, and the range is [-1.7976931348623157e+308, 1.7976931348623157e+308].

The restrict keyword is used to inform the compiler that a variable can only be accessed by a pointer, preventing undefined behavior, optimizing code and improving readability: Preventing undefined behavior when multiple pointers point to the same variable. To optimize code, the compiler uses the restrict keyword to optimize variable access. Improves code readability by indicating that variables can only be accessed by a pointer.

The complex type is used to represent complex numbers in C language, including real and imaginary parts. Its initialization form is complex_number = 3.14 + 2.71i, the real part can be accessed through creal(complex_number), and the imaginary part can be accessed through cimag(complex_number). This type supports common mathematical operations such as addition, subtraction, multiplication, division, and modulo. In addition, a set of functions for working with complex numbers is provided, such as cpow, csqrt, cexp, and csin.

In C language, there are two ways to implement the exponentiation operation: use the pow() function to calculate the power of the second parameter of the first parameter. Define a custom power function, which can be implemented recursively or iteratively: the recursive method continues to double the power until it is 0. The iterative method uses a loop to multiply the base one by one.

In C language, methods for handling scanf function errors include: 1. Check the format string; 2. Check the input; 3. Check the return value; 4. Set the error flag; 5. Use the error handling function; 6. Use custom errors deal with. To prevent errors, use the correct data types, carefully validate input, check return values, and handle potential errors in your program.

_Bool represents Boolean type in C language. It is a simple data type that contains only two values, true or false. It is used to represent the results of conditions or logical expressions. It usually occupies 1 byte of memory and can only store true or false. false value.

reg is the keyword used for registers in C language and is used to declare pointer variables pointing to registers. Syntax: register data_type *var_name; where data_type is the data type stored in the register, and var_name is the name of the pointer variable. The value in the register can be accessed by dereferencing the pointer, but please note that the available registers vary between platforms and compilers.
