Chuyển số âm sang hệ nhị phân

Chuyển từ -65 và -219 sang hệ nhị phân thì
-65 = 0000 0001
-219 = 0010 0101
phải k ạ? @@ tại nghe nhiều kiểu quá nên giờ e có chút hoang mang về độ chính xác bài e làm. A/c nào có thể check hộ e xem đáp án vậy đúng chưa ạ??

1 Like

A, e cảm ơn. a/c check hộ e đáp án đúng hay chưa là đc rồi ạ :smiling_face_with_three_hearts:
tại e có chút k chắc ạ.

số âm thì bit ngoài cùng bên trái của nó phải là số 1

vậy như thế nào mới đúng ạ? :sweat::sweat::sweat::sweat::sweat:

-65 = 0000 0001
-219 = 0010 0101

65 = 0100 0001 => bù 1: -65 = 1011 1110 => bù 2: -65 = 1011 1111;

0000 0001 = 1;
0010 0101 = 37;

lộn. e bị lộn. là 63 ạ. @@
-63 với -219 là bn ạ? để e làm lại và check ạ.

63 = 0011 1111 =>; bù 1: -63 = 1100 0000 => bù 2: -63 = 1100 0001

1 Like

-219 là bn ạ? @@ e bị loạn rồi

với -219 bạn có thể chuyển nó thành 16 bit rồi làm, chứ 8bit không viết số -219 được.
viết số dương 219 ra hệ nhị phân rồi thêm các số 0 ở đầu cho đủ 16 bit, xong rồi bắt đầu làm.

1 Like

Mình làm theo trình tự như sau:
Cách 1: -63 => dấu - là số 1 đầu tiên, ta nên tách ra bằng dấu “.” để khỏi nhầm (số 1 này không thay đổi): 1.63 => chuyển đổi sang nhị phân số 63: 1.0111111 => đảo tất cả các bit phía sau dấu chấm: 1.1000000 => cộng nhị phân với số 1 (nguyên tắc: 1+0 hoặc 0+1 = 1; 1+1=0 nhớ 1): 1.1000001. Như vậy kết quả của số bù 2 của số nguyên có dấu này là: 11000001 (bỏ dấu “.”).
Cách 2: -63 => dấu - là số 1 đầu tiên, ta nên tách ra bằng dấu “.” để khỏi nhầm (số 1 này không thay đổi): 1.63 => lấy số sau dấu chấm trừ đi 1 => 1.62 => chuyển đổi sang nhị phân số 62: 1.0111110 => đảo tất cả các bit phía sau dấu chấm: 1.1000001. Như vậy kết quả của số bù 2 của số nguyên có dấu này là: 11000001 (bỏ dấu “.”).

1 Like

Làm tương tự với -63 ta có:
Cách 1: -219 => 1.219 => chuyển đổi sang nhị phân số 219 (128_mũ 7 + 64_mũ 6 + 16_mũ 4+8_mũ 3 + 4_mũ 2 + 1_mũ 0): 1.0000000 11011101 => đảo tất cả các bit phía sau dấu chấm: 1.111111100100010 => cộng nhị phân với số 1 (nguyên tắc: 1+0 hoặc 0+1 = 1; 1+1=0 nhớ 1): 1.111111100100011. Như vậy kết quả của số bù 2 của số nguyên có dấu này là: 1111111100100011.
Cách 2: -219 => 1.219 => lấy số sau dấu chấm trừ đi 1 => 1.218 => (128_mũ 7 + 64_mũ 6 + 16_mũ 4+8_mũ 3 + 4_mũ 2): 1.0000000 11011100 => đảo tất cả các bit phía sau dấu chấm: 1.111111100100011. Như vậy kết quả của số bù 2 của số nguyên có dấu này là: 1111111100100011.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?