Cách làm của mình khá là lằng nhằng, khó hiểu và có thể không đúng theo lý thuyết, nếu có gì sai mong bạn thông cảm và góp ý giùm mình nha.
1. Chuyển các ký tự của xâu sang mã ASCII, ta được: [tex][66, 97, 105, 95, 116, 97, 112][/tex]
Các ký tự trên đều có mã dương, nên bit cao nhất (bit 8) của các chữ đều là 0.
Tách các số trên theo dạng tổng cơ số 2, lần lượt ta có:
- [tex]66=64+2=2^6+2^1\Rightarrow [/tex] mã nhị phân [tex]01000010[/tex]
- [tex]97=64+32+1=2^6+2^5+2^0\Rightarrow [/tex] mã nhị phân [tex]01100001[/tex]
- [tex]105=64+32+8+1=2^6+2^5+2^3+2^0\Rightarrow[/tex] mã nhị phân [tex]01101001[/tex]
- [tex]95=64+16+8+4+2+1=2^6+2^4+2^3+2^2+2^1+2^0\Rightarrow[/tex] mã nhị phân[tex]01011111[/tex]
- [tex]116=64+32+16+4=2^6+2^5+2^4+2^2\Rightarrow[/tex] mã nhị phân[tex]01110100[/tex]
- [tex]97=64+32+1=2^6+2^5+2^0\Rightarrow[/tex] mã nhị phân [tex]01100001[/tex]
- [tex]112=64+32+16=2^6+2^5+2^4\Rightarrow[/tex] mã nhị phân [tex]01110000[/tex]
Do đó, xâu "Bai_tap" khi chuyển sang mã nhị phân có dạng:
[tex]01000010\hspace{5px}01100001\hspace{5px}01101001\hspace{5px}01011111\hspace{5px}01110100\hspace{5px}01100001\hspace{5px}01110000[/tex].
2. Bit cao nhất của mã là 1, tức là số được thể hiện là số âm
7 bit còn lại của mã là [tex]1000110[/tex], suy ra phần số có giá trị [tex]2^6+2^2+2^1=64+4+2=69[/tex]
Do đó, mã nhị phân [tex]11000110[/tex] thể hiện cho số [tex]-69[/tex] .
Chúc bạn học tốt nha. ^^