Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số thập lục phân trong C ++

Chúng tôi được cung cấp một phạm vi có bắt đầu và kết thúc và nhiệm vụ là tính toán số lượng thập phân hoặc bảng chữ cái có trong phạm vi đã cho.

Bảng chữ cái thập lục phân là gì?

Theo thuật ngữ máy tính, số thập lục phân là những số có cơ số 16, nghĩa là chữ số nhị phân có thể được biểu diễn bằng 16-bit. Nó bao gồm các số nguyên bắt đầu từ 0-15. Trong đó 10 được biểu thị là A, 11 là B, 12 là C, 13 là D, 14 là E và 15 là F.

Vì vậy, trong chương trình dưới đây, nhiệm vụ của chúng ta là tìm xem phạm vi có bao gồm các mã thập lục phân hay không.

Ví dụ

Input − start = 10, End = 13
Output − 4

Giải thích - Có 4 số thập lục phân từ 10 đến 13, tức là 10 là A, 11 là B, 12 là C và 13 là D.

Input − start = 15, End = 16
Output − 1

Giải thích - Chỉ có một bảng chữ cái thập lục phân, tức là 15 vì F và 16 được biểu thị bằng 10.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập phạm vi bắt đầu từ biến, giả sử, bắt đầu và kết thúc.

  • Khai báo một số đếm biến để lưu trữ số lượng và khởi tạo nó bằng 0

  • Bắt đầu một vòng lặp for với tôi để bắt đầu và cho đến khi tôi nhỏ hơn hoặc bằng để kết thúc

  • Bên trong vòng lặp, hãy kiểm tra xem tôi có lớn hơn hoặc bằng 10 và tôi cũng lớn hơn hoặc bằng 15 rồi tăng số đếm lên 1

  • Nếu không, hãy kiểm tra xem tôi có lớn hơn 15 không

  • Sau đó, đặt một biến tạm thời tạm thời với giá trị là i và đi ngang trong khi k không bằng 0

  • Và kiểm tra xem k% 16 lớn hơn hoặc bằng 10

  • Tăng số lượng lên 1

  • và đặt nhiệt độ theo temp / 16

  • Trả lại giá trị của số lượng

  • In kết quả.

Ví dụ

#include <iostream>
using namespace std;
// Function to count the
// total number hexadecimal alphabet
int counthexa(int start, int end){
   int result = 0;
   for (int i = start; i <= end; i++){
      // All hexadecimal alphabets
      // from 10 to 15
      if (i >= 10 && i <= 15){
         result++;
      }
      // If i > 15 then perform mod by 16 repeatedly
      // till the number is > 0
      // If number % 16 > 10 then increase count
      else if (i > 15){
         int k = i;
         while (k != 0){
            if (k % 16 >= 10){
               result++;
            }
            k = k / 16;
         }
      }
   }
   return result;
}
// Main Function
int main(){
   int start = 10, end = 60;
   cout << "count is: "<<counthexa(start, end);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Số lượng
count is: 21