Hỏi cách đổi số nguyên â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 !

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?

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

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 ạ !

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à.

@@ 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ứ ?

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

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

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
5 Likes

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 ?

1 Like

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 :smile:

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

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

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

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 ?

À, 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.

2 Likes

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

1 Like

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 :smile:

2 Likes

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

1 Like

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ỉ ?

A post was split to a new topic: Đổi số thực âm hệ 10 sang hệ 2

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