Đối với số nguyên có dấu, 8 bit, dùng phương pháp Mã bù 2, giá trị biểu diễn số là

Thông báo chuẩn bị xuất bản khóa học mới Lập Trình Zalo với Android SDK:https://duythanhcse.wordpress.com/2020/05/09/thong-bao-chuan-bi-xuat-ban-khoa-hoc-moi-lap-trinh-zalo-voi-android-sdk/

Các kiến thức trong Khóa học Lập Trình Zalo với Android SDK gồm:

Show

Tìm hiểu Zalo Android SDK (cách tích hợp, login, Open API, tương tác với Zalo App)

Cung cấp những kiến thức cốt lõi cơ bản về 1 ứng dụng tích hợp Zalo Android SDK.

-Cách thức gửi xét duyệt sử dụng các API

Cách thức đăng nhập, xác thực, đăng xuất Zalo

Làm việc với Social API (Mời sử dụng ứng dụng, đăng bài viết, gửi tin nhắn bạn bè, lấy danh sách bạn bè, lấy thông tin người dùng)

Để biểu diễn số Âm trong máy tính thông thường người ta sử dụng phương pháp Bù 2.

Topic này được viết để bổ sung kiến thức cho Topic https://duythanhcse.wordpress.com/2012/01/01/cac-vi-d%E1%BB%A5-v%E1%BB%81-java-assignment-operator/ (Java Assignment Operator)

Theo phương pháp này, bit cực trái hay còn gọi là bit nằm bên trái cùng của byte được sử dụng làm bit dấu ( là bit tượng trung cho dấu của số sign bit). Người ta quy ước: Nếu bit dấu là 0 thì số là số dương, nếu bit dấu là 1 thì số là số âm. Ngoài bit dấu này ra, các bit còn lại được dùng để biểu diễn độ lớn của số.

Ví dụ 1:

Tôi lấy số -45 ở hệ thập phân, số này sẽ được biểu diễn trong máy tính theo phương pháp bù 2 như sau ( Tôi chọn mẫu 8 bit):

Bước 1: Xác định số nguyên 45 ở hệ thập phân được biểu diễn trong máy tính là : 0010 1101

Bước 2: Đảo tất cả các bit nhận được ở bước 1. Kết quả bạn sẽ được: 1101 0010

Bước 3: Cộng thêm 1 vào kết quả thu được ở bước 2. Kết quả sau khi cộng: 1101 0011

Bước 4: Vì là biểu diễn số âm nên bit cực trái luôn giữ là 1.

Vậy với phương phá bù 2, số -45 ở hệ thập phân được biểu diễn trong máy tính như sau: 1101 0011

Ví dụ 2:

Tôi lấy số nguyên -5 ở hệ thập phân, nó sẽ được biểu diễn trong máy tính theo phương pháp bù 2 như sau ( cũng lấy mẫu 8 bit):

Bước 1: Xác định số nguyên 5 ở hệ thập phân được biểu diễn dạng nhị phân trong máy tính như sau: 0000 0101

Bước 2: Đảo tất cả các bit nhận được ở bước 1. Ta được như sau: 1111 1010

Bước 3: Cộng thêm 1 vào kết quả thu được ở bước 2, ta được: 1111 1011.

Bước 4: Vì là biểu diễn số âm nên bit cực trái luôn giữ là 1

Như vậy với phương pháp bù 2 thì số -5 ở hệ thập phân được biểu diễn trong máy tính như sau: 1111 1011

Để giúp các bạn hiểu rõ hơn, Tôi sẽ thực hiện 2 phép cộng số thập phân âm (<0) cho các bạn xem:

Ví dụ 3: Cộng số -5 với số 2 (mẫu 8 bit):

Trước tiên bạn phải đổi -5 thành số nhị phân trong máy tính theo phương pháp Bù 2. Tức là bạn sẽ có số 1111 1011

Số 2 bạn biểu diễn thành nhị phân, bạn cũng sẽ được 0000 0010

Bây giờ Tôi sẽ cộng 2 số nhị phân này lại như sau:

1 1 1 1 1 0 1 1
+
00 00 0 0 1 0
-
1 1 1 1 1 1 0 1

Bây giờ tự nhiên Tôi hỏi bạn, số nhị phân 1 1 1 1 1 1 0 1 thì số thập phân của nó là số mấy? Bạn sẽ trả lời như thế nào? Trước tiến phải xác định nó là số Âm bởi vì bit cực trái của nó là số 1. Để biết nó là số mấy thì ta tiến hành đảo bit như sau:

1 1 1 1 1 1 0 1 => 00000010

Tiến hành cộng thêm 1 vào 00000010, như vậy ta được 00000011. Ta đổi qua hệ thập phân = 2^1 +2^0 =2+1 =3, cộng với dấu đằng trước của nó là dấu Âm, do đó 1 1 1 1 1 1 0 1 sẽ có giá trị là -3

Ví dụ 4: Tôi sẽ cộng số -5 với -7 (cũng dùng mẫu 8 bit)

Cũng dùng phương pháp bù 2 để biểu diệ n-5 và -7 thành số nhị phân, Số -5 bạn đã biết nó có giá trị 1111 1011. Còn số -7 nếu bạn chưa biết biểu diễn thì bạn chưa hiểu cách tính, bạn phải coi lại 4 bước bên trên. Coi lại mà chưa hiểu tiếp thì chắc ăn Tôi sẽ biểu diện lại cho bạn xem bên dưới:

Bước 1: Xác định số nguyên 7 bên hệ thập phân được biểu diễn sang nhị phân là: 0000 0111

Bước 2: Đảo tất cả các bit nhận được từ bước 1, ta sẽ được: 1111 1 000

Bước 3: Cộng 1 vào kết quả nhận được ở bước 2, ta được: 1111 1001

Bước 4: Vì là số âm nên bit cực trái là 1

Như vậy số -7 được biểu diễn đưới dạng nhị phân trong máy tính là: 1111 1001

Bây giờ ta tiến hành Cộng -5 và -7

1111 1011
+
1111 1001

1111 0100

Bạn để ý rằng, khi cộng 2 bit cực trái của 2 số trên, ta vẫn còn nhớ 1, Nhưng mà trong kết quả này ta bỏ bit dấu này đi

Bây giờ cũng tương tự, Tôi hỏi lại các bạn số nhị phân 1111 0100 thì số thập phân của nó là bao nhiêu?

Tôi sẽ một lần nữa làm lại cho các bạn: Tiến hành đảo bit 1111 0100 bạn sẽ được 0000 1011 , sau đó cộng 1 vào ta được 0000 1100

Như vậy bạn sẽ được 2^3+ 2^2 =8+4=12, với bit dấu là âm, Tức là ta được kết quả -12.

Chúc các bạn Thành Công.

Chia sẻ lên:

Print

Related

  • Cách thiết lập biến môi trường để chạy Java ở cơ chế command line
  • December 20, 2011
  • In "Lập Trình Java 1"
  • Thông báo chuẩn bị xuất bản khóa học mới Lập Trình Zalo với Android SDK
  • May 9, 2020
  • In "Thông báo chung"
  • Xuất bản khóa học Lập trình Zalo với Android SDK
  • June 2, 2020
  • In "Thông báo chung"