在 C++ 中将数字转换为十六进制
假设我们有一个整数;我们必须设计一个算法,将其转换为十六进制。对于负数,我们将使用二进制补码法。
因此,如果输入像 254 和 -12,则输出将分别为 fe 和 fffffff4。
为了解决这个问题,我们将遵循以下步骤:
如果 num1 与 0 相同,则 −
返回 "0"
num := num1
s := 空白字符串
在 num 为非零时,执行 −
temp := num mod 16
如果 temp <= 9,则 −
s := s + temp 作为数字字符
否则
s := s + temp 作为字母
num := num / 16
反转数组 s
返回 s
示例
让我们看以下实现以获得更好的理解 −
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string toHex(int num1){
if (num1 == 0)
return "0";
u_int num = num1;
string s = "";
while (num) {
int temp = num % 16;
if (temp <= 9)
s += (48 + temp);
else
s += (87 + temp);
num = num / 16;
}
reverse(s.begin(), s.end());
return s;
}
};
main(){
Solution ob;
cout << (ob.toHex(254)) << endl;
cout << (ob.toHex(-12));
}输入
254 -12
输出
fe fffffff4
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP