Kiểu dữ liệu số nguyên là gì

     Để so sánh các giá trị Integer với nhau có thể dừng các toán tử so sánh [quan hệ], việc so sánh dựa trên thứ tự của các số nguyên, kết quả chỉ có thể là Đúng [TRUE] hoặc Sai [FALSE]. Các phép so sánh này luôn cho kết quả có kiểu Logic [Boolean].

  - Trong mọi ngôn ngữ lập trình ta đều có thể thực hiện các  phép toán số học cộng, trừ, nhân, chia với các số nguyên, số thực.

  - Kí hiệu các phép toán số học trong ngôn ngữ Pascal:
Tên phép toánKiểu dữ liệu +cộngsố nguyên, số thực -
trừ số nguyên, số thực
*
nhânsố nguyên, số thực/
chia số nguyên, số thựcdivchia lấy phần nguyên số nguyên mod chia lấy phần dư số nguyên

Các kiểu dữ liệu số nguyên, số thực thường dùng trong Free Pascal

Published: 29 April 2017 |Hits: 51997

1. Kiểu số nguyên

Kiểu dữ liệuKhoảng giá trịKiểu dữ liệu tương đươngKích thướcDiễn giảiChú ýshortint-128 -> 127int81 byteKiểu số nguyên có dấu 8 bit byte0 -> 255uint81 byteKiểu số nguyên không dấu 8 bit integer-32,768 -> 32,767int162 byteKiểu số nguyên có dấu 16 bit word0 -> 65,535uint162 byteKiểu số nguyên không dấu16 bit longint-2 tỷ -> 2 tỷint324 byteKiểu số nguyên có dấu 32 bit longword0 -> 4 tỷuint324 byteKiểu số nguyên không dấu 32 bit int64-9 tỷ tỷ -> 9 tỷ tỷ 8 byteKiểu số nguyên có dấu 64 bitKhông sử dụng làm biến chạy trong vòng lặp forqword0 -> 18 tỷ tỷuint648 byteKiểu số nguyên không dấu 64 bitKhông sử dụng làm biến chạy trong vòng lặp for

2. Kiểu số thực

Kiểu dữ liệuGiá trị tuyệt đối bé nhấtGiá trị tuyệt đối lớn nhấtKiểu dữ liệu tương đươngKích thướcDiễn giảisingle1.5E-453.4E+38 4 byte real5.0E-3241.7E+308double8 byteTrong Free Pascal: real = double. Trong đó: 
double: số thực với độ chính xác kép [độ chính xác gấp đôi]

Category: Lập trình Pascal

- Dữ liệu là thông tin đã mã hóa trong máy tính. Dữ liệu sau khi tập hợp lại và xử lý sẽ cho ta thông tin.

- Mỗi ngôn ngữ lập trình thường cung cấp một số kiểu dữ liệu chuẩn cho biết phạm vi giá trị có thể lưu trữ, dung lượng bộ nhớ cần thiết để lưu trữ và các phép toán tác động lên dữ liệu.

- Mỗi kiểu dữ liệu được đặc trưng bởi tên kiểu miền giá trị, kích thước trong bộ nhớ, các phép toán, các hàm và thủ tục sử dụng chúng.

- Một số kiểu dữ liệu chuẩn thường dùng cho các biến chẵn trong Pascal, đó là:

Kiểu nguyên: Các kiểu nguyên được lưu trữ và kết quả tính toán là số nguyên nhưng có hạn chế về miền giá trị. Tập số nguyên là vô hạn là có thứ tự, đếm được

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Byte

1 byte

Từ 0 đến 255

Integer

2 byte

Từ -2-15 đến 215 - 1

Word

2 byte

Từ 0 đến 216

Longint

4 byte

Từ -231 đến 231- 1

Kiểu thực: Các kiểu thực được lưu trữ và kết quả tính toán chỉ là gần đúng với sai số không đáng kể, nhưng miền giá trị được mở rộng hơn so với kiểu nguyên. Số thực tromg máy tính rời rạc và hữu hạn. Phép toán chia các toán hạng gồm cả kiểu nguyên và kiểu thực sẽ cho kết quả là kiểu thực. 

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Real

6 byte

0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 2-38 đến 238

Extended

10 byte

0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 2-4932 đến 24932

Kiểu kí tự: Kiểu kí tự có tập hợp giá trị là các kí tự trong bảng mã ASCII, được dùng khi thông tin là các kí tự, xâu [string]. Kiểu kí tự là kiểu có thứ tự, đếm được. Kí tự đặc biệt dùng để thể hiện sự ngăn cách giữa hai từ viết liên tiếp trong các văn bản, là dấu cách.

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Char

1 byte

256 kí tự trong bộ mã ASCII

Nhìn bảng dưới ta thấy kí tự A có mã ASCII là 65, a có mã là 97.

Kiểu lôgíc: Kiểu lôgíc trong Pascal chi có hai giá trị là true và false, được dùng khi kiểm tra một điều kiện hoặc tìm giá trị cùa một biểu thức lôgíc. Kiểu lôgíc cũng là kiểu thứ tự đếm được.

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Boolean

1 byte

true hoặc false

Lưu ý : Người lập trình cần tìm hiểu đặc trưng của các kiểu dữ liệu chuẩn được xác định bởi bộ dịch và sử dụng để khai báo biến

Ví dụ: Để lưu trữ giá trị nguyên mang giá trị 65537 thì ta không thể sử dụng kiểu byte, integer, word mà phải dung longint. Tuy nhiên nếu ta chỉ lưu trữ giá trị tối đa nhỏ hơn 32767 thì ta nên sử dụng kiểu integer để tiết kiệm bộ nhớ.

Có thể hiểu kiểu dữ liệu trong ngôn ngữ lập trình là các thuộc tính[biến] dùng để lưu trữ thông tin, giá trị mà khi chương trình biên dịch sinh ra.

2. Kiểu dữ liệu nguyên thủy

Kiểu dữ liệu là kiểu dữ liệu được cung cấp sẵn trong các ngôn ngữ lập trình, nó dùng để lưu trữ các giá trị đơn giản.

Dưới đây là các nhóm của kiểu dữ liệu nguyên thủy

các bạn có thể thấy kiểu dữ liệu nguyên thủy được chia ra thành 4 nhóm chính đó là:

  • Kiểu logic[
    public class Student{
        private String name;
        public SinhVien[String name]{
            this.name = name;
        }
        public String getName[]{
            return name;
        }
        public void setName[String name]{
            this.name = name;
        }
    }
    
    2]: lưu giá trị logic nhận giá trị true hoặc false
  • Kiểu kí tự[
    public class Student{
        private String name;
        public SinhVien[String name]{
            this.name = name;
        }
        public String getName[]{
            return name;
        }
        public void setName[String name]{
            this.name = name;
        }
    }
    
    3]: lưu các thông tin là ký tự: ví dụ 'a', 'c', 'd' ...
  • Kiểu số nguyên[
    public class Student{
        private String name;
        public SinhVien[String name]{
            this.name = name;
        }
        public String getName[]{
            return name;
        }
        public void setName[String name]{
            this.name = name;
        }
    }
    
    4]: lưu các thông tin là kiểu số nguyên như 1,2,3,4,5,6,7,8...
  • Kiểu số thực[
    public class Student{
        private String name;
        public SinhVien[String name]{
            this.name = name;
        }
        public String getName[]{
            return name;
        }
        public void setName[String name]{
            this.name = name;
        }
    }
    
    5]: lưu các thông tin là kiểu số thực như 1.4, 2.5, 2.6...

Cụ thể và chi tiết hơn về từng loại trong các nhóm nguyên thủy trên bạn có thể ở bảng dưới đây

KiểuMô tảMặc địnhKích thướcVí dụbooleantrue hoặc falsefalse1 bittrue, falsebyteSố nguyên từ -128 .. 12708 bits123charKý tự Unicode\u000016 bits'a', '\u0041', '\101', '\', ''', '\n', 'ß'shortSố nguyên giá trị từ -32768 .. 32767016 bits1000intSố nguyên -2,147,483,648 .. 2,147,483,647032 bits-2, -1, 0, 1, 2longSố nguyên dài064 bits-2L, -1L, 0L, 1L, 2LfloatSố thực0.032 bits1.23e100f, -1.23e-100f, .3f, 3.14FdoubleSố thực0.064 bits1.23456e300d, -1.23456e-300d, 1e1d

3. Kiểu dữ liệu đối tượng

Kiểu dữ liệu đối tượng được chia làm 2 loại:

  • Framwork định nghĩa: Những đối tượng này được tạo sẵn và công việc của chúng ta chỉ việc gọi lên và sử dụng chúng, ví dụ: File, String, Scanner...
  • Do người dùng định nghĩa: Chính là những class được chúng ta define từ những đối tượng trong bài toán OOP, ví dụ: Học Sinh, Nhân Viên, Giáo Viên, Lập Trình Viên...

public class Student{
    private String name;
    public SinhVien[String name]{
        this.name = name;
    }
    public String getName[]{
        return name;
    }
    public void setName[String name]{
        this.name = name;
    }
}
6

4. Sự khác nhau giữa kiểu dữ liệu nguyên thủy và kiểu dữ liệu đối tượng

Trước tiên chúng ta cần biết khi khai báo và khởi tạo 1 kiểu dữ liện[nguyên thủy và đối tượng] thì hệ thống sẽ cấp phát 1 địa chỉ ô nhớ để lưu trữ giá trị của thuộc tính đó

Kiểu dữ liệu nguyên thủy

Là kiểu dữ liệu có tính chất tham trị:

int a = 3;
int b = a;
b = b + 1;
System.out.println[a]; // 3
System.out.println[b]; // 4

Trong ví dụ trên sẽ thực hiện như sau

  • Khởi tạo ra 1 thuộc tính a = 3 khi này hệ thống sẽ cấp phát 1 địa chỉ ô nhớ để lưu trữ giá trị của 3 và địa chỉ ô nhớ này sẽ có giá trị là 3

  • Dòng lệnh thứ 2 thực hiện phép gán b = a lúc này sẽ khởi tạo ra thuộc tính b và cũng có giá trị là 3 tuy nhiên địa chỉ ô nhớ của a và b lúc này là 2 địa chỉ ô nhớ khác nhau

  • Dòng lệnh thứ 3 thực hiện tăng b lên 1 đơn vị. Vì a và b đang ở 2 địa chỉ ô nhớ khác nhau nên khi giá trị của b thay đổi thì giá trị của a vẫn không bị ảnh hưởng

> Từ ví dụ trên chúng ta có thể hiểu nôm na tính tham trị bản chất của nó chỉ là copy giá trị của 1 địa chỉ khác để tạo ra 1 địa chỉ ô nhớ mới có cùng giá trị với địa chỉ copy

Kiểu dữ liệu đối tượng

Là kiểu dữ liệu có tính tham chiếu:

Chúng ta có đối tượng Sinh viên như sau:

public class Student{
    private String name;
    public SinhVien[String name]{
        this.name = name;
    }
    public String getName[]{
        return name;
    }
    public void setName[String name]{
        this.name = name;
    }
}

Và chúng ta thử tính tham chiếu với nó nhé

Student sv1 = new Student["Nguyen Van A"];
Student sv2 = sv1;

Sau đó thử thay đổi giá trị của sv2 nào

sv2.setName["Nguyen Van B"];

Cuối cùng thử in tên của 2 thằng sv1 và sv2

System.out.println["Student 1: " + sv1.getName[]];
System.out.println["Student 2: " + sv2.getName[]];

Khi compile chúng là sẽ thu được kết quả là:

Student 1: Nguyen Van B
Student 2: Nguyen Van B

Đến đây chắc bạn đã nhận ra sự khác biệt giữa kiểu dữ liệu đối tượng và kiểu dữ liệu nguyên thủy rồi chứ?

Các bạn nhìn vào câu lệnh

public class Student{
    private String name;
    public SinhVien[String name]{
        this.name = name;
    }
    public String getName[]{
        return name;
    }
    public void setName[String name]{
        this.name = name;
    }
}
7 khi này chúng ta cũng tạo ra 1 thuộc tính kiểu đối tượng sv2 tuy nhiên hệ thống sẽ không cấp phát 1 địa chỉ mới để lưu trữ sv2 mà sẽ đưa sv2 trỏ đến địa chỉ ô nhớ của sv1. Tức là khi này sv1 và sv2 sẽ trỏ vào cùng 1 địa chỉ ô nhớ.

Khi ta thực hiện

public class Student{
    private String name;
    public SinhVien[String name]{
        this.name = name;
    }
    public String getName[]{
        return name;
    }
    public void setName[String name]{
        this.name = name;
    }
}
8 sẽ làm giá trị đang tại địa chỉ ô nhớ thay đổi và dĩ nhiên khi cả sv1 và sv2 cùng trỏ vào 1 địa chỉ thì cả 2 thằng này sẽ đều nhận được sự thay đổi giá trị của của ô nhớ đó.

Kết luận

Như vậy điểm khác biệt giữa 2 kiểu dữ liệu đối tượng và nguyên thủy đó là 1 thằng có tính tham chiếu và 1 thằng có tính tham trị và khi sử dụng chúng nó sẽ khác nhau về việc cấp phát địa chỉ ô nhớ và các refernces vào địa chỉ ô nhớ đó.

Đâu là kiểu dữ liệu số thực?

Kiểu số thực một kiểu dữ liệu được sử dụng trong chương trình máy tính để biểu diễn xấp xỉ một số thực. Do các số thực đều không đếm được, nên với một lượng thông tin hữu hạn, máy tính không thể biểu diễn số thực một cách chính xác.

Có bao nhiêu kiểu dữ liệu số nguyên?

1. Kiểu số nguyên.

Kiểu số nguyên tên là gì?

Kiểu số nguyên.

Có bao nhiêu kiểu dữ liệu thường dùng?

Lý thuyết: Một số kiểu dữ liệu chuẩn trang 21 SGK Tin học 11.

Chủ Đề