Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Integer Data Types | Dealing with Data Types
C# Basics
course content

Course Content

C# Basics

C# Basics

1. Getting Started
2. Dealing with Data Types
3. Control Structures
4. Loops
5. Arrays
6. Methods

bookInteger Data Types

Data Types are classification of data values into different categories based on their nature such as integer numbers, decimal numbers, textual data etc. Each data type has different kinds of operations associated with it, for-example we can perform arithmetic operations on numerical data but not on textual data.

The int keyword refers to the "integer" data type which basically represents the integer numbers.

In the last section we learnt the following syntax for declaring a variable:

Apart from the above syntax, there is another method of variable declaration:

Here type refers to the data type of the variable. So far we know only int. We can declare a variable of integer data type in the following way:

In this case we can also declare a variable without giving it an initial value:

Note

Giving an initial value to a variable at the time of declaration is called initialization.

The var keyword allows the compiler to automatically infer the datatype of a variable based on the assigned value. For instance, in var myVariable = 7;, the variable myVariable is assigned an integer value, making its data type int. Such a variable is called an Implicitly-Typed Variable. Note that when using the var keyword, the variable must always be initialized as well, therefore writing var myVariable; is invalid.

On the other hand, manually specifying the datatype doesn't require an initial value. Therefore, both int myVariable; and int myVariable = 10; are valid statements. In this case myVariable is an Explicitly-Typed Variable.

Following code summarizes the above two paragraphs:

cs

main

copy
12345
var myVar1 = 10; // Valid var myVar2; // Error: Implicitly-typed variables must be initialized int myVar3 = 10; // Valid int myVar4; // Valid

It is important to note that we cannot use a variable that hasn't been assigned any value. Therefore the following code will give an error:

cs

main

copy
12
int myVar; System.Console.WriteLine(myVar); // Error: Use of unassigned local variable 'myVar'

Correction:

cs

main

copy
123
int myVar; myVar = 10; System.Console.WriteLine(myVar); // Output: 10

We can reassign a variable as many times as we want:

cs

main

copy
12345678
int myVar = 10; System.Console.WriteLine(myVar); // Output: 10 myVar = 15; System.Console.WriteLine(myVar); // Output: 15 myVar = 17; System.Console.WriteLine(myVar); // Output: 17 myVar = 7; System.Console.WriteLine(myVar); // Output: 7

An int variable can only store values within a certain range. There is another datatype long which is the same as int however it can store bigger numbers.

Range
int-2,147,483,648 to 2,147,483,647
long-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Storing a bigger number than a data type can hold might give unexpected results. We don't need to look at that into detail at this level.

We can perform arithmetic operations on int and long data. The following snippet of code shows some examples:

cs

main

copy
1234567891011121314151617181920
// int values int a = 10; int b = 25; int c = a + b; // long values long d = 1000; long e = 2500; long f = d + e; // Adding a 'long' and an 'int' always results in a 'long' resultant value. // Therefore we can store the result of 'd + a' into a new 'long' variable called 'g'. long g = d + a; // For the same reason, we cannot store the result of 'd + a' into an 'int' variable int h = d + a; // Error on this line int i = 5 / 2; System.Console.WriteLine(i); // Output: 2 // Dividing 5 by 2 gives 2.5 however since 'int' can only store integer values, hence the decimal (0.5) part is ignored.

There are two other data types uint and ulong, called unsigned int and unsigned long respectively. An unsigned data type can only hold positive numbers, consequently they have a bigger positive range.

Range
uint0 to 4,294,967,295
ulong0 to 18,446,744,073,709,551,615
Which one of the following datatypes is suitable for storing a large positive integer value?

Which one of the following datatypes is suitable for storing a large positive integer value?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 2. Chapter 1
We're sorry to hear that something went wrong. What happened?
some-alt