Mô tả bài toán
Cho số N. Chuyển sang nhị phân, lấy 3 bit cao nhất và 3 bit thấp nhất, chuyển từng nhóm ra thập phân.
Ví dụ
N=57 (nhị phân 111001) → 3 bit cao: 111=7, 3 bit thấp: 001=1 → Output: 7 1.
Giải thuật
Chuyển N sang nhị phân lưu vào mảng bit (LSB trước).\n- 3 bit thấp: bit[0..2].\n- 3 bit cao: bit[len-3 .. len-1] (nếu len<3 thì dùng 3 bit).\nChuyển mỗi nhóm sang thập phân.
Mã nguồn C++
#include <bits/stdc++.h>
using namespace std;
void convtbnTodcml(int n) {
int bits[64]={}, len=0;
while (n>0) { bits[len++] = n%2; n/=2; }
int hi = (len<3) ? 3 : len;
int lo=0, hiVal=0, p=0;
for (int i=hi-3; i
Đầu ra
Decimal conversion of first and last bits of the number 57 is 7 1