C++程序 十进制转十六进制
给定一个十进制数作为输入,我们需要编写一个程序将给定的十进制数转换为等价的十六进制数。即将基值为10的数字转换为基值为16的数字。
十六进制数使用16个值表示一个数字。数字从 0-9 用0-9的数字表示,而数字 10-15 则由A-F的字符表示。
实例:
输入:116
输出:74
输入:10
输出:A
输入:33
输出:21
算法:
- 将数字除以16的余数存储在一个临时变量temp中。如果temp小于10,则在字符数组中插入(48 + temp); 否则,如果temp大于或等于10,则在字符数组中插入(55 + temp)。
- 现在将数字除以16。
- 重复以上两个步骤,直到数字不等于0。
- 现在以相反的顺序打印数组。
示例
如果给定的十进制数是2545。
第1步 :计算当2545除以16的余数为1。因此,temp = 1。由于temp小于10,所以arr [0] = 48 + 1 = 49 =“1”。
第2步 :将2545除以16。新数字为2545/16 = 159。
第3步 :当159除以16的余数为15时,计算temp = 15。因此,由于temp大于10,所以arr [1] = 55 + 15 = 70 =“F”。
第4步 :将159除以16。新数字为159/16 = 9。
第5步 :计算将9除以16的余数为9。因此,由于temp小于10,所以arr [2] = 48 + 9 = 57 =“9”。
第6步 :将9除以16。新数字为9/16 = 0。
第7步 :因为数字变为0。停止重复步骤并以相反的顺序打印数组。因此,相应的十六进制数为9F1。
下图显示了将十进制数2545转换为等效十六进制数的示例。
以下是上述想法的实现
输出:
时间复杂度 :O(log 16 n)
辅助空间 :O(1)
使用预定义函数
输出: