C++ 中十六进制数字计数
给定一个具有起始和结束范围的任务,计算给定范围内的十六进制数字或字母的数量。
什么是十六进制字母?
在计算机术语中,十六进制数是指基数为 16 的数字,这意味着二进制数字可以用 16 位表示。它包含从 0 到 15 的整数。其中 10 表示为 A,11 表示为 B,12 表示为 C,13 表示为 D,14 表示为 E,15 表示为 F。
因此,在下面的程序中,我们的任务是找到该范围是否包含十六进制字母。
例如
Input − start = 10, End = 13 Output − 4
说明 - 10 和 13 之间有 4 个十六进制数字,即 10 为 A,11 为 B,12 为 C,13 为 D。
Input − start = 15, End = 16 Output − 1
说明 - 只有一个十六进制字母,即 15 为 F,16 分别表示为 10。
下面程序中使用的的方法如下
输入从变量开始的范围,假设为 start 和 end。
声明一个变量 count 来存储计数并将其初始化为 0
启动一个 for 循环,从 i 开始,直到 i 小于或等于 end
在循环内,检查 i 是否大于或等于 10 且 i 也大于或等于 15,然后将 count 增加 1
否则,检查 i 是否大于 15
然后,用 i 的值设置一个临时变量 temp,并在 k 不等于 0 时遍历
并检查 k%16 是否大于或等于 10
将 count 增加 1
并且,将 temp 设置为 temp/16
返回 count 的值
打印结果。
示例
#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;
}输出
如果我们运行上述代码,它将生成以下输出:
count is: 21
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP