Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Ba bit đầu và ba bit cuối của số nguyên C++

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