Số dấu phẩy động là gì?

Mục lục:

Số dấu phẩy động là gì?
Số dấu phẩy động là gì?
Anonim

Hình thức biểu diễn các số thực (hoặc thực), trong đó chúng được lưu trữ dưới dạng định trị và số mũ, là các số dấu phẩy động (có thể là một điểm, theo thông lệ ở các nước nói tiếng Anh). Mặc dù vậy, con số được cung cấp với độ chính xác tương đối cố định và độ chính xác tuyệt đối có thể thay đổi. Biểu diễn được sử dụng thường xuyên nhất đã được phê duyệt bởi tiêu chuẩn IEEE 754. Các phép toán sử dụng số dấu phẩy động được thực hiện trong các hệ thống máy tính - cả phần cứng và phần mềm.

số dấu phẩy động
số dấu phẩy động

Dấu chấm hoặc dấu phẩy

Danh sách chi tiết của Dấu phân tách thập phân hiển thị các quốc gia nói tiếng Anh và nói tiếng Anh nơi phần phân số được phân tách khỏi phần nguyên bằng một dấu chấm trong số và do đó thuật ngữ của các quốc gia này được gọi là dấu phẩy động. Ở Liên bang Nga, phần phân số theo truyền thống được ngăn cách với phần tổng thể bằng dấu phẩy, do đó, thuật ngữ được công nhận trong lịch sử "số dấu phẩy động" biểu thị cùng một khái niệm. Tuy nhiên, ngày nay trong tài liệu kỹ thuật và tài liệu tiếng Nga, cả haitùy chọn.

Thuật ngữ "số dấu phẩy động" xuất phát từ thực tế là biểu diễn vị trí của một số biểu thị dấu phẩy (thập phân thông thường hoặc nhị phân - máy tính), có thể phù hợp với bất kỳ đâu trong số các chữ số của một chuỗi. Tính năng này phải được thảo luận riêng. Điều này có nghĩa là việc biểu diễn các số dấu phẩy động có thể được coi là một cách triển khai máy tính của ký hiệu hàm mũ. Lợi thế của việc sử dụng biểu diễn này so với biểu diễn định dạng số nguyên và điểm cố định là phạm vi giá trị tăng lên đáng kể trong khi độ chính xác tương đối vẫn giữ nguyên.

Ví dụ

Nếu dấu phẩy trong số là cố định, thì nó chỉ có thể được viết ở một định dạng. Ví dụ, đã cho sáu chữ số nguyên ở một số và hai chữ số ở phần phân số. Điều này chỉ có thể được thực hiện theo cách này: 123456, 78. Định dạng dấu phẩy động cung cấp phạm vi đầy đủ cho biểu thức. Ví dụ, tám chữ số giống nhau được đưa ra. Có thể có bất kỳ số tùy chọn ghi nào, nếu người lập trình không bỏ qua nghĩa vụ tạo trường bổ sung hai chữ số, nơi anh ta sẽ viết số mũ, thường là 10, từ 0 đến 16 và tổng số chữ số sẽ là mười: 8 + 2.

Một số ký hiệu mà định dạng dấu phẩy động cho phép: 12345678000000000000; 0,0000012345678; 123, 45678; 1, 2345678, v.v. Định dạng này thậm chí còn có một đơn vị tốc độ! Hay nói đúng hơn là tốc độ của hệ thống máy tính, điều này giúp khắc phục tốc độ mà máy tính thực hiệncác phép toán trong đó có biểu diễn các số dấu phẩy động. Hiệu suất này được đo bằng đơn vị FLOPS (hoạt động dấu phẩy động trên giây, được dịch là số hoạt động trên giây với số dấu phẩy động). Đơn vị này là đơn vị chính trong việc đo tốc độ của hệ thống máy tính.

định dạng dấu phẩy động
định dạng dấu phẩy động

Cấu trúc

Viết một số ở định dạng dấu phẩy động như sau, quan sát chuỗi các phần bắt buộc, vì ký hiệu này là cấp số nhân, trong đó các số thực được biểu diễn dưới dạng phần định trị và số mũ. Điều này là cần thiết để đại diện cho các số quá lớn và quá nhỏ, chúng thuận tiện hơn nhiều để đọc. Phần bắt buộc: số phải viết (N), phần định trị (M), dấu mũ (p) và số mũ (n). Hai ký tự cuối cùng tạo nên các đặc điểm của số. Do đó, N=M. p. Đây là cách số dấu phẩy động được viết. Các ví dụ sẽ khác nhau.

1. Cần phải viết ra số một triệu để không bị nhầm lẫn trong các số không. 1000000 là ký hiệu thông thường, số học. Và máy tính có dạng như sau: 1, 0.106. Tức là, từ mười đến lũy thừa thứ sáu - ba chữ số, phù hợp với sáu số không. Đây là cách các số cố định và dấu phẩy động được biểu diễn, nơi có thể phát hiện ra sự khác biệt về chính tả ngay lập tức.

2. Và một số khó như 1435000000 (một tỷ bốn trăm ba mươi lăm nghìn) cũng có thể được viết đơn giản: 1, 435.109, chỉ. Tương tự với dấu trừbạn có thể viết bất kỳ số nào. Đây là cách số cố định và số dấu phẩy động khác nhau.

Nhưng đây là những con số lớn, còn những con số nhỏ thì sao? Vâng, nó cũng dễ dàng.

3. Ví dụ, làm thế nào để biểu thị một phần triệu? 0, 000001=1, 0.10-6. Cả việc viết số và đọc nó đều được tạo điều kiện thuận lợi rất nhiều.

4. Và khó hơn? Năm trăm bốn mươi sáu phần tỷ: 0, 000000546=546.10-9. Đây. Phạm vi biểu diễn số dấu phẩy động rất rộng.

biểu diễn dấu chấm động
biểu diễn dấu chấm động

Hình

Dạng số có thể bình thường hoặc chuẩn hoá. Bình thường - luôn tôn trọng độ chính xác của số dấu phẩy động. Cần lưu ý rằng phần định trị ở dạng này, bỏ qua dấu, nằm trên một nửa của khoảng: 0 1, có nghĩa là 0 ⩽ a < 1. Không ở dạng bình thường, số mất độ chính xác. Nhược điểm của dạng số thông thường là nhiều số có thể được viết theo nhiều cách khác nhau, nghĩa là không rõ ràng. Ví dụ về các ký hiệu khác nhau của cùng một số: 0, 0001=0, 000001.102=0, 00001.101=0, 0001.100=0, 001.10-1=0, 01.10-2và nhiều hơn nữa là có thể. Đó là lý do tại sao khoa học máy tính sử dụng một dạng ký hiệu chuẩn hóa khác, trong đó phần định trị của số thập phân nhận một giá trị từ một (bao gồm) và do đó lên đến mười (không bao gồm), và theo cách tương tự, phần định trị của số nhị phân nhận một giá trị từ một (bao gồm) đến hai (không bao gồm).

Vì vậy, 1 ⩽ a < 10. Đây là các số dấu phẩy động nhị phân và dạng ký hiệu này nắm bắt bất kỳ số nào (trừ số 0) theo một cách duy nhất. Nhưng cũng có một nhược điểm - không có khả năng biểu diễn số 0 ở dạng này. Do đó, khoa học máy tính cung cấp việc sử dụng một dấu (bit) đặc biệt cho số 0. Phần nguyên của số (bậc cao) của phần định trị trong một số nhị phân, ngoại trừ số 0, ở dạng chuẩn hóa là 1 (một ẩn). Kí hiệu này được sử dụng bởi tiêu chuẩn IEEE 754. Các hệ thống số vị trí, trong đó cơ số lớn hơn hai (hệ bậc ba, bậc bốn và các hệ thống khác), không có thuộc tính này.

viết một số dấu phẩy động
viết một số dấu phẩy động

Số thực

Số dấu phẩy động thực thường là số duy nhất, vì đây không phải là cách duy nhất, nhưng rất thuận tiện để biểu diễn một số thực, như thể một sự thỏa hiệp giữa phạm vi giá trị và độ chính xác. Đây là một dạng tương tự của ký hiệu hàm mũ, chỉ được thực hiện trong máy tính. Số dấu phẩy động là một tập hợp các chữ số nhị phân riêng biệt được chia thành dấu (dấu), số mũ (mũ) và phần định trị (mantis). Định dạng IEEE 754 phổ biến nhất biểu thị số dấu phẩy động dưới dạng một tập hợp các bit mã hóa phần định trị bằng một phần, mức độ với phần kia và dấu của số được biểu thị bằng một bit: số 0 là nếu nó là số dương, một nếu số âm. Toàn bộ đơn hàng được viết dưới dạng số nguyên (mã có dấu dịch chuyển) và phần định trị - ở dạng chuẩn hóa, là phần thập phân của nó - trong hệ nhị phân.

Mỗi ký tự là một bit cho biếtký hiệu cho số hoàn toàn dấu phẩy động. Mantissa và số mũ là các số nguyên, chúng cùng với một dấu hiệu tạo nên một biểu diễn của một số dấu phẩy động. Thứ tự có thể được gọi là một số mũ hoặc một số mũ. Không phải tất cả các số thực đều có thể được biểu diễn trong máy tính bằng giá trị chính xác của chúng, trong khi phần còn lại được biểu diễn dưới dạng giá trị gần đúng. Một lựa chọn đơn giản hơn nhiều là biểu diễn một số thực với một điểm cố định, nơi phần thực và phần nguyên sẽ được lưu trữ riêng biệt. Rất có thể, theo cách mà phần nguyên luôn được gán X bit và phần phân số - Y bit. Nhưng kiến trúc bộ xử lý không biết theo cách này, và do đó ưu tiên được dành cho số dấu phẩy động.

phạm vi dấu chấm động
phạm vi dấu chấm động

Bổ sung

Thêm dấu chấm động khá đơn giản. Do tiêu chuẩn IEEE 754, một số chính xác duy nhất có số lượng bit rất lớn, vì vậy tốt nhất bạn nên chuyển ngay vào các ví dụ và tốt hơn là lấy biểu diễn dấu phẩy động nhỏ nhất của số. Ví dụ: hai số - X và Y.

Biến Nhà triển lãm Mantissa
X 0 1001 110
Y 0 0111 000

Các bước sẽ là:

a) Các số phải được trình bày ở dạng chuẩn hóa. Đơn vị ẩn được đại diện rõ ràng. X=1.110.22và Y=1.000.2 0.

b) Bạn chỉ có thể tiếp tục quá trình cộng bằng cách cân bằngsố mũ, và đối với điều này, bạn cần viết lại giá trị của Y. Nó sẽ tương ứng với giá trị của số chuẩn hóa, mặc dù trên thực tế, nó không được chuẩn hóa.

Tính hiệu giữa các số mũ của lũy thừa 2 - 0=2. Bây giờ chuyển phần định trị để bù cho những thay đổi này, nghĩa là thêm 2 vào số mũ của số hạng thứ hai, do đó chuyển dấu phẩy đơn vị hai điểm bên trái. Hóa ra là 0, 0100.22. Giá trị này sẽ tương đương với giá trị trước đó của Y, tức là đã là Y '.

c) Bây giờ bạn cần thêm phần định trị của số X và số Y.

1, 110 + 0, 01=10, 0

Số mũ vẫn bằng giá trị X đã trình bày, là 2.

d) Tổng thu được ở giai đoạn trước đã dịch chuyển đơn vị chuẩn hóa, vì vậy bạn cần chuyển số mũ và lặp lại tổng. 10, 0 với hai bit ở bên trái của dấu thập phân, bây giờ số cần được chuẩn hóa, tức là, di chuyển dấu thập phân sang trái một điểm và tăng số mũ lên 1 cho phù hợp..2 3.

e) Đã đến lúc chuyển đổi số dấu phẩy động sang hệ một byte.

Lượng Nhà triển lãm Mantissa
X + Y 0 1010 000

Kết

Như bạn thấy, việc cộng những con số như vậy không quá khó, không có gì dấu phẩy nổi cả. Tất nhiên, trừ khi, chúng tôi đếm việc giảm một số có số mũ nhỏ hơn thành một số có số mũ lớn hơn (trong ví dụ đã cho, chúng là Y thành X), cũng như khôi phục nguyên trạng, nghĩa là phát hành bồi thường -di chuyển dấu thập phân của phần định trị sang trái. Khi việc bổ sung đã được thực hiện, một khó khăn khác rất có thể xảy ra - chuẩn hóa lại và cắt bớt các bit nếu số của chúng không khớp với định dạng số cho biểu diễn của nó.

phép nhân dấu phẩy động
phép nhân dấu phẩy động

Nhân

Hệ thống số nhị phân cung cấp hai cách để nhân các số dấu phẩy động. Nhiệm vụ này có thể được thực hiện bằng một phép nhân bắt đầu với các chữ số có nghĩa nhỏ nhất và bắt đầu bằng các chữ số có nghĩa nhất trong cấp số nhân. Cả hai trường hợp đều chứa một số hoạt động thêm các sản phẩm từng phần một cách tuần tự. Các phép toán cộng này được điều khiển bởi các bit của bộ nhân. Điều này có nghĩa là nếu có một đơn vị ở một trong các chữ số của cấp số nhân, thì tổng các tích từng phần sẽ tăng lên cấp số nhân và với sự dịch chuyển tương ứng. Và nếu số 0 lọt vào danh mục số nhân, thì số nhân đó không được thêm vào.

Nếu chỉ nhân hai số, thì các chữ số của tích trong số của chúng không thể vượt quá số chữ số có trong thừa số nhiều hơn hai lần, và đối với các số lớn thì con số này là rất rất nhiều. Nếu nhiều con số được nhân lên, thì sản phẩm có nguy cơ không vừa với màn hình. Do đó, số lượng chữ số của bất kỳ máy kỹ thuật số nào là khá hữu hạn và điều này buộc chúng ta phải tự giới hạn tối đa hai lần số chữ số của bộ cộng. Và nếu số lượng chữ số bị hạn chế, một lỗi chắc chắn sẽ được đưa vào sản phẩm. Nếu khối lượng tính toán lớn thì sai số chồng chất và kết quả là tổng sai số tăng lên rất nhiều. Đâycách duy nhất là làm tròn kết quả của phép nhân, sau đó sai số của tích sẽ chuyển thành dấu hiệu. Khi một phép nhân được thực hiện, có thể vượt ra ngoài lưới các chữ số, nhưng chỉ từ phía bên của các chữ số thấp hơn, vì có một hạn chế được áp dụng đối với các số được biểu diễn dưới dạng dấu phẩy cố định.

Một số làm rõ

Tốt hơn để bắt đầu lại. Cách phổ biến nhất để biểu diễn một số là dưới dạng một chuỗi chữ số dưới dạng số nguyên, với dấu phẩy ở cuối. Chuỗi này có thể có độ dài bất kỳ và dấu phẩy ở đúng vị trí cho nó, phân tách số nguyên khỏi phần phân số của nó. Định dạng để biểu diễn một số với một điểm cố định, hệ thống nhất thiết phải đặt ra các điều kiện nhất định về vị trí của dấu phẩy. Ký hiệu lũy thừa sử dụng biểu diễn chuẩn hóa tiêu chuẩn của các số. Đây là q n { displaystyle aq ^ {n}} aq . Đây là { displaystyle a}a, và ren này được gọi là phần định trị. Chính điều này mà người ta nói rằng 0 ⩽ a < q. Sau đó, mọi thứ sẽ rõ ràng: n {/ displaystyle n}nlà một số nguyên, số mũ và q {/ displaystyle q}qcũng là một số nguyên là cơ sở của hệ thống số này (và bằng văn bản, nó thường là 10). Phần định trị sẽ để lại dấu phẩy sau chữ số đầu tiên, không phải là số 0, nhưng xa hơn cùng với thông tin bản ghi về giá trị thực của số được truyền đi.

Một số dấu phẩy động được viết rất giống với ký hiệu chuẩn dễ hiểu cho các số, chỉ có phần mũ và phần định trị được viết riêng biệt. Sau này cũng trongđịnh dạng chuẩn hóa - với một điểm cố định tô điểm cho chữ số có nghĩa đầu tiên. Chỉ là dấu phẩy động được sử dụng chủ yếu trong máy tính, nghĩa là, trong biểu diễn điện tử, trong đó hệ thống không phải là hệ thập phân, mà là hệ nhị phân, trong đó ngay cả phần định trị cũng được bất chuẩn hóa bằng cách sắp xếp lại dấu phẩy - bây giờ nó nằm trước chữ số đầu tiên, có nghĩa là trước và không sau nó, trong đó phần nguyên về nguyên tắc có thể không có. Ví dụ: hệ thống thập phân gốc của chúng tôi sẽ cho hệ thống nhị phân mượn số chín của nó để sử dụng tạm thời. Và cô ấy sẽ viết nó ra bằng một phần định trị dấu phẩy động như sau: +1001000 … 0, và chỉ số +0 … 0100 cho nó. Tuy nhiên, hệ thập phân sẽ không thể thực hiện các phép tính phức tạp như vậy vì hệ nhị phân có thể sử dụng dạng dấu phẩy động.

ví dụ về dấu chấm động
ví dụ về dấu chấm động

Số học dài

Trong máy tính điện tử có các gói phần mềm tích hợp sẵn, trong đó dung lượng bộ nhớ được cấp cho phần định trị và số mũ được đặt theo chương trình, chỉ giới hạn bởi kích thước của bộ nhớ máy tính. Đây là cách số học trông giống như thế nào, tức là các phép toán đơn giản trên các số mà máy tính thực hiện. Tất cả đều giống nhau - trừ và cộng, chia và nhân, các hàm cơ bản và nâng lên gốc. Nhưng chỉ có những con số hoàn toàn khác, dung lượng của chúng có thể vượt quá độ dài của một từ máy một cách đáng kể. Việc thực hiện các hoạt động như vậy không xảy ra trong phần cứng, mà trong phần mềm, nhưng phần cứng cơ bản được sử dụng rộng rãi để làm việc với số lượng đơn đặt hàng thấp hơn nhiều. Ngoài ra còn có số học, trong đó độ dài của các con số chỉ bị giới hạn bởi khối lượngbộ nhớ - số học chính xác tùy ý. Và số học dài được sử dụng trong nhiều lĩnh vực.

1. Đối với việc biên dịch mã (bộ xử lý, vi điều khiển có độ sâu bit thấp - trong thanh ghi 10 bit và tám bit, điều này rõ ràng là không đủ để xử lý thông tin từ Analog-to-digital (Bộ chuyển đổi tương tự sang số) và do đó số học dài không thể được được phân phối với.

2. Ngoài ra, số học dài được sử dụng cho mật mã, nơi cần đảm bảo tính chính xác của kết quả của phép tính lũy thừa hoặc phép nhân lên đến 10309. Số học nguyên được sử dụng modulo m - một số tự nhiên lớn và không nhất thiết phải là một số nguyên tố.

3. Phần mềm cho các nhà tài chính và toán học cũng không thể không tính toán dài dòng, vì đây là cách duy nhất để kiểm tra kết quả tính toán trên giấy - sử dụng máy tính, đảm bảo độ chính xác cao của các con số. Dấu chấm động, chúng có thể liên quan đến miễn là bạn muốn độ sâu bit. Nhưng các tính toán kỹ thuật và công việc của các nhà khoa học hiếm khi cần đến sự can thiệp của tính toán phần mềm, vì rất khó nhập dữ liệu đầu vào mà không mắc lỗi. Chúng thường lớn hơn nhiều so với kết quả làm tròn.

Chống lại lỗi

Rất khó đánh giá sai số của kết quả trong các phép toán với các số có dấu phẩy nổi. Cho đến nay, một lý thuyết toán học làm hài lòng tất cả mọi người vẫn chưa được phát minh ra có thể giúp giải quyết vấn đề này. Nhưng sai số với số nguyên rất dễ ước lượng. Khả năng loại bỏ những điểm không chính xác nằm ở bề ngoài - chỉ sử dụng những con số vớidấu phẩy cố định. Ví dụ, các chương trình tài chính được xây dựng chính xác trên nguyên tắc này. Tuy nhiên, ở đó đơn giản hơn: số chữ số bắt buộc sau dấu thập phân đã được biết trước.

Các ứng dụng khác không thể tự giới hạn điều này, bởi vì nó không thể hoạt động với số lượng rất nhỏ hoặc rất lớn. Vì vậy, khi làm việc luôn tính đến những sai sót có thể xảy ra, do đó khi hiển thị kết quả cần phải làm tròn số. Hơn nữa, tự động làm tròn thường là một hành động không đủ và do đó, việc làm tròn được thiết lập có chủ đích. Thao tác so sánh là rất nguy hiểm về mặt này. Rất khó để ước tính quy mô của các lỗi trong tương lai ở đây.

Đề xuất: