30/09/2018, 16:10

Cách đổi số âm hệ 10 sang hệ 2?

Viết chương trình nhập vào 1 số nguyên n. Chuyển đổi n sang hệ nhị phân và xuất
ra màn hình. (với giá trị n: -255 <= n <= 255), sử dụng mảng một chiều.

Em còn chưa hiểu lắm về việc chuyển số nguyên âm thành bit. Mọi người có thể giúp được không ạ. Em xin cảm ơn !

Nguyễn Minh Dũng viết 18:23 ngày 30/09/2018

Em sử dụng ngôn ngữ gì? Mà có 1 điểm là diễn đàn mình hỗ trợ nhau học chứ không giải bài tập cho nhau. Để em học tốt, anh khuyến khích em thử làm, hoặc đưa ra ý tưởng để làm.

Chứ nếu anh đưa bài giải cho em thì em đâu có học được gì?

Về bài 1, để anh làm rõ. Em làm được các bước sau chưa?

Cái này em làm được đúng không?

Viết chương trình nhập vào 1 số nguyên n

Cái này làm được không?

Chuyển đổi n sang hệ nhị phân

Phạm Khắc Quyền viết 18:27 ngày 30/09/2018

Em còn vướng chỗ nếu n là số nguyên âm, 2 bước trên em làm được rồi ạ !

Gió viết 18:16 ngày 30/09/2018

Nếu số đó âm thì bạn chỉ cần lấy trị tuyệt đối của nó rồi chuyển sang. Sau đó thêm dấu “-” phía trước phần nhị phân in ra là được mà.

Phạm Khắc Quyền viết 18:19 ngày 30/09/2018

@@ làm vậy cũng được hả.Mình tưởng phải in ra số bù 1 hoặc sô bù 2 chứ ?

Gió viết 18:13 ngày 30/09/2018

Mình nghĩ thế cũng được chứ. Nếu không thì thêm 1 bit trước tương ứng dấu của số nhị phân

Phạm Khắc Quyền viết 18:16 ngày 30/09/2018

Ok để mình thử ! tks bạn

Nguyễn Minh Dũng viết 18:20 ngày 30/09/2018

Nếu a nhớ không lầm thì em lấy giá trị tuyệt đối của số đó. Nếu nó là số âm, thì tìm từ bên phải qua bên trái, cho đến khi gặp số 1. Tất cả các số phía bên trái số 1 đó, nghịch đảo lên hết.

Ví dụ ta chuyển -20 sang nhị phân

ta có

20 =  0001 0100

Thì -20 sẽ là

-20 = 1110 1100
Phạm Khắc Quyền viết 18:25 ngày 30/09/2018

Tks anh nhìu ! Còn chuyển từ hệ nhị phân sang số thập phân có dấu mình cũng làm tương tự hả anh ?

Nguyễn Minh Dũng viết 18:20 ngày 30/09/2018

Từ nhị phân có dấu thì anh chưa làm bao giờ. Nhưng anh đoán là mình có thể làm ngược trở lại là được

Nhớ là số âm thì bit đầu tiên bên trái luôn là 1 nhé

Phạm Khắc Quyền viết 18:15 ngày 30/09/2018

Từ nhị phân có dấu thì anh chưa làm bao giờ. Nhưng anh đoán là mình có thể làm ngược trở lại là được

Cách chuyển cho 16 bit cũng tương tự hả anh ?

Nguyễn Minh Dũng viết 18:26 ngày 30/09/2018

Cách chuyển cho 16 bit

16 bit hay hệ 16 em? Hệ 16 em cứ đặt dấu - phía trước là được mà.

Phạm Khắc Quyền viết 18:18 ngày 30/09/2018

Dạ 16 bit đó anh.Nãy em làm cho 8 bit mà hình như nếu là 16 bit thì có khác ?

Nguyễn Minh Dũng viết 18:18 ngày 30/09/2018

À, giống nhau hết em à. Chỉ là mình mở rộng số bit để chứa được số to hơn thôi. Còn cấu trúc là giống như nhau.

Phạm Khắc Quyền viết 18:27 ngày 30/09/2018

Cảm ơn anh nhiều ! Chiều giờ làm phiền anh quá

Nguyễn Minh Dũng viết 18:14 ngày 30/09/2018

Miễn em hiểu là được mà, có thời gian thì anh sẽ trả lời tận tình. Nếu bận thì anh xin lỗi, chứ còn rảnh là còn chia sẻ kiến thức.

Anh thích thảo luận như thế này chứ anh không thích giải bài giúp em 100%. Vì giúp như vậy khác nào giết chết tư duy của người khác

Phạm Khắc Quyền viết 18:27 ngày 30/09/2018

Hi hi. Em cũng nghĩ vậy ! Lần sau đặt câu hỏi em sẽ chú ý hơn

Hidan viết 18:18 ngày 30/09/2018

Ví dụ ta chuyển -20 sang nhị phân

ta có

20 = 0001 0100

Thì -20 sẽ là

-20 = 1110 1100

e thấy 1110 1100 chuyển sang thập phân là 236 vậy có phải là -20 đổi thành 256 -20 ko hả a.
vậy e chuyển value = value + 256 nếu value < 0 dc ko nhỉ ?

Bài liên quan
0