21xrx.com
2024-12-27 16:42:47 Friday
登录
文章检索 我的文章 写文章
C++代码实现二进制转十六进制
2023-07-04 21:03:44 深夜i     --     --
C++ 二进制 十六进制 转换 代码

C++中提供了许多功能强大的位运算操作符,这些运算符可以用来进行二进制和十六进制之间的转换。在本文中,我们将学习如何使用这些运算符实现二进制转十六进制的代码。

二进制转十六进制的算法比较简单,只需按位将二进制数分成四位一组,然后将每组转换成十六进制数即可。在C++中,我们可以使用位运算和按位与操作来实现此算法。

我们可以将输入的二进制数存储在一个unsigned long long类型的变量中,然后用一个for循环将二进制数按位拆分成4位一组,然后将每一组转换成对应的十六进制数。转换过程很简单,只需将每组的4位二进制数转换成对应的十六进制数字即可。

下面是代码实现:


#include <iostream>

#include <string>

using namespace std;

int main() {

  unsigned long long binary;

  string hex = "";

  cout << "Enter a binary number: ";

  cin >> binary;

  // convert binary to hexadecimal

  for (int i = 0; i < 16; i++, binary >>= 4) {

    int digit = binary & 0xF; // get last 4 bits

    if (digit < 10) {

      hex = char(digit + 48) + hex; // convert digit to char

    } else {

      hex = char(digit + 55) + hex; // convert digit to hex char

    }

  }

  cout << "Hexadecimal number: " << hex << endl;

  return 0;

}

在上面的代码中,我们首先从用户输入中获取二进制数并将其存储在一个unsigned long long类型的变量中。然后我们使用一个for循环,按位将二进制数分成每四位一组,并将其转换成对应的十六进制数字。其中,'0'-'9'对应的ASCII码是48-57,'A'-'F'对应的ASCII码是65-70,因此我们可以使用ASCII码转换将数字转换成对应的字符。

最后,我们将转换后的十六进制数输出到屏幕上。

总之,使用C++实现二进制转十六进制的代码非常简单,只要掌握位运算和按位与操作即可。该算法也可以用来将其他进制的数进行转换。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复