gpt4 book ai didi

c++ - 双五进制编码示例

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:29 25 4
gpt4 key购买 nike

我有以下问题要解码双二进制代码,请使用数字 5043210。在每个数字处将二进制数乘以数字 5043210。这将得到一个十进制数字。例如,取数字 0110000。要将其更改为十进制:(5 × 0) + (0 × 1) + (4 × 1) + (3 × 0) + (2 × 0) + (1 × 0) + (0 × 0) = 4这个我试过了

#include <iostream>
using namespace std;
int main(){

char a[]="5043210";
int sum=0;
int b=48;
int n=sizeof(a)/sizeof(char);
for (int i=0;i<n;i++){

sum+=(a[i]-'0')*(b>>(1<<(n-1-i)));

}

cout<<sum<<endl;


return 0;
}

但不幸的是它给了我错误的答案请帮忙

最佳答案

我能够通过稍微简化代码来生成答案 4。我颠倒了 a[] 的顺序并使用了 std::bitset 来使代码更简单、更清晰。

#include <bitset>
#include <iostream>

int main()
{
char a[] = "0123405";
std::bitset<7> bits(48);
int sum = 0;
for (int i = 0; i < 7; ++i)
sum += (a[i]-'0')*bits[i];

std::cout << sum << std::endl;
return 0;
}

关于c++ - 双五进制编码示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com