我需要用一个int调用byteSwap(),然后将其转换为十六进制并反转十六进制。 例如 byteSwap(2030)或7ee(十六进制)应返回ee7。 该程序还执行其他一些操作,我想使用reverse()在byteSwap()中进行反转。 我尝试在byteSwap()中使用几个不同的循环,但似乎无法获取十六进制值来实际反转。

#include <iostream>
#include <array>

using namespace std;

void putInOrder(string *s1, string *s2);
void copy(int *f, int *t, int n);
void reverse(char *x, int n);
int byteSwap(int i);

int main() {

string a = "A";
string z = "Z";
auto *s1 = (string *) "A";
auto *s2 = (string *) "Z";
putInOrder(&z, &a);


int arr1 [3] = {3,4,5};
int arr2 [3] = {6,7,8};
int n;
cout << "Enter a number of values to be copied: ";
cin >> n;
copy(arr1,arr2,n);


char x = 0;
string name = "Computer";
reverse(&name[0],9);



byteSwap(2030);



return 0;
}
void putInOrder(string *s1, string *s2)
{
cout << s1 << " " << s2 << endl;

if(s2 > s1)
{
    swap(s1,s2);
}
else if (s1 > s2)
{
    cout << s1 << " " << s2 << endl;
}
cout << s1 << " " << s2 << endl;

}

void copy(int *f, int *t, int n)
{

for(int i = 0; i <= n + 2; ++i)
{
    t[i+3] = f[i];
    cout << t[i] << " ";
}
cout << "\n";
}

void reverse(char *x, int n)
{

for(int i = n - 1; i >=0; --i)
{
    cout << x[i] << "";
}
cout << "\n";
}

int byteSwap(int i)
{





}

===============>>#1 票数:0

我建议使用std::bitset因为它为这种数据操作提供了一些有用的方法。 在这里,我采用二进制表示形式,每4位反转一次以获取所需的输出(每8位反转一次以获取ee07 )。 您也可以调整比特集的大小以适合您的需求:

#include <iostream>
#include <bitset>

int main()
{
    std::bitset<16> num(2030);
    std::string numstr(num.to_string());

    std::string numstrrev;
    for (size_t i = 0, n = numstr.size(); i < n; i+=4)
        numstrrev = numstr.substr(i, 4) + numstrrev;

    std::bitset<16> numrev(numstrrev);

    std::cout << std::hex << numrev.to_ulong() << std::endl;

    return 0;
}

https://ideone.com/ZuxKYE

  ask by Chris Dort translate from so

未解决问题?本站智能推荐:

1回复

在C ++中将输出从十六进制转换为十进制

我试图找到数组元素的内存地址,但是输出结果却是十六进制的。 如果您能告诉我如何将其转换为小数输出,我将不胜感激。 这是代码,
1回复

将数字从dec转换为十六进制并反转,并将值分配给char数组的索引

我有一个5字节的数组输出[0x00、0x00、0x00、0x00、0x ??]。 0x ?? 需要替换为整数n的十六进制值。 因此,如果我的dec值为20,则我的输出数组应如下所示:[0x00、0x00、0x00、0x00、0x14]。 我首先使用以下代码将dec值转换为十六进制:
2回复

十六进制到十进制转换

我必须将十六进制转换为十进制值,然后将其乘以10,然后再转换回十进制。 我弄清楚了大部分问题,当我将其乘以10并将其转换回十六进制值时,就会发生问题。 我知道有一种更简单的方法,只需使用char数组即可完成。 我似乎无法弄清楚哪里出了问题。
2回复

十六进制char数组转换为十进制

我需要编写一个函数,该函数接受代表十六进制数字的char数组,并将该数字作为十进制整数返回。 例如: 7F作为基数16在数组中显示为['7', 'F']并返回127 我尝试这样做,但是有些不起作用:
3回复

将大十六进制数转换为十进制数的算法(基数为10)

我有一个字节数组和该数组的长度。 目标是输出包含表示为基数为10的数字的字符串。 我的阵列是小端。 这意味着第一个( arr[0] )字节是最低有效字节。 这是一个例子: 该数组由[0x12, 0x34, 0x56, 0x78, 0x9A] 。 我想实现的函数hexToDe
1回复

C ++程序将十进制转换为十六进制

我编写了一个程序,使用对字母的切换命令将十进制字符串转换为十六进制,但是如果使用char,该程序将无法正常运行! 没有切换,我将无法处理高于9的数字。我希望您能理解我,因为我的语言不太好。 所以这是我的程序 顺便说一句,如果将它设置为int而不是char它可以正常工作,但是它变成1
6回复

将十六进制转换为十进制

我正在寻找一种方法将hex (十六进制)转换为dec (十进制) 。 我找到了一个简单的方法,如: 但有了这个我不能输入265 。 无论如何它是这样的: 输入: 265 输出: 613 反正有吗? 注意:我试过了: 它不起作用。
1回复

将void *十六进制转换为十进制整数

您好,我需要您的帮助将void *(十六进制数字)转换为十进制数字。 我在代码中使用了sqlite3,回调函数给了我一个&data,其中包含行数。 问题是:我需要将&data(十六进制数字)保存为int。 也许有另一种方法可以执行此操作,但是我尝试将&data十六进制转换为十进制int,问
3回复

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

我有这段代码,但它似乎只打印十六进制转换的最后4个字符。 输入 :3219668508 输出 :3e1c 预期输出:bfe83e1c 救命?
2回复

如何将十六进制转换为十进制[关闭]

我需要进行这种转换,但是没有任何线索。 有人能帮我吗? 我需要它来完成基本转换的计算器。 我还需要该函数返回一个整数以转换为在其他函数中使用。 PS:对不起,我的英语不好。 我希望11F为整数287。