相关疑难解决方法(0)

在C/C++中有效地转换Hex,Binary和Decimal

我有正整数的3个基本表示:

  1. 十进制,无符号长变量(例如unsigned long int NumDec = 200).
  2. 十六进制,字符串变量(例如字符串NumHex ="C8")
  3. 二进制,字符串变量(例如字符串NumBin ="11001000")

我希望能够以最有效的方式在所有3个表示中的数字之间进行转换.即实现以下6个功能:

unsigned long int Binary2Dec(const string & Bin) {}
unsigned long int Hex2Dec(const string & Hex) {}
string Dec2Hex(unsigned long int Dec) {}
string Binary2Hex(const string & Bin) {}
string Dec2Binary(unsigned long int Dec) {}
string Hex2Binary(const string & Hex) {}
Run Code Online (Sandbox Code Playgroud)

每种方法最有效的方法是什么?我可以使用C和C++,但不能提升.

编辑:"效率"是指时间效率:最短的执行时间.

c c++ binary hex decimal

9
推荐指数
1
解决办法
3万
查看次数

C将十六进制转换为十进制格式

使用gcc在linux上编译.

我想将其转换为十六进制.10这将是一个.我设法做到这一点将下面的代码.

unsigned int index = 10;
char index_buff[5] = {0};
sprintf(index_buff, "0x%x", index);
data_t.un32Index = port_buff;
Run Code Online (Sandbox Code Playgroud)

但是,问题是我需要将它分配给一个结构,我需要分配的元素是unsigned int类型.

但这有效:

data_t.un32index = 0xa;
Run Code Online (Sandbox Code Playgroud)

但是,我的示例代码不起作用,因为它认为我试图从字符串转换为unsigned int.

我试过这个,但这也失败了

data_t.un32index = (unsigned int) *index_buff;
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议,

c hex decimal

4
推荐指数
2
解决办法
2万
查看次数

IBM 单精度浮点数据转换为预期值

我需要从二进制文件中读取值,数据格式是 IBM 单精度浮点(4 字节十六进制指数数据)并将该值用作十进制数。我有从文件中读取并取出每个字节并像这样存储的 C++ 代码

 unsigned char buf[BUF_LEN];

        for (long position = 0; position < fileLength; position += BUF_LEN) {
            file.read((char* )(&buf[0]), BUF_LEN);

           // printf("\n%8ld:  ", pos);

            for (int byte = 0; byte < BUF_LEN; byte++) {
               // printf(" 0x%-2x", buf[byte]);
            }
        }
Run Code Online (Sandbox Code Playgroud)

这将打印出每个字节的十六进制值。

此图指定 IBM 单精度浮点 IBM 单精度浮点 我不明白 24 位正二进制小数是什么。我知道如何在 hex<->dec<->binary 之间进行转换,所以我的基本理解是将所有 q 视为一个非常长的二进制段,将使用 Q24(2)^(23) 作为最大的value 同时将所有前面的值加在一起,然后将数字乘以 10^-24 。但我的直觉告诉我这是错误的。澄清什么是基数点或 MSB 会有所帮助。

c++ byte bit

1
推荐指数
1
解决办法
1066
查看次数

将十六进制转换为dec C++

转换为十六进制:

cout << hex << int(x) << endl;
Run Code Online (Sandbox Code Playgroud)

相反,如何从十六进制转换为十进制?

输入十六进制数简单:

cin >> hex >> x;
Run Code Online (Sandbox Code Playgroud)

c++ hex decimal

0
推荐指数
1
解决办法
4446
查看次数

标签 统计

c++ ×3

decimal ×3

hex ×3

c ×2

binary ×1

bit ×1

byte ×1