首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使函数接受4位二进制字符串并返回64位字符串?

如何使函数接受4位二进制字符串并返回64位字符串?
EN

Stack Overflow用户
提问于 2015-10-26 22:23:56
回答 2查看 216关注 0票数 0

我已经为LFSR编写了函数(甚至不确定它是否正确),但我试图让它接受一个4位字符串作为输入,并返回一个64位。

代码语言:javascript
复制
#include <iostream>
#include <bitset>
#include <ctime>
#include <cstdlib>
#include <random>
using namespace std;

void linshift(int s)
{
    int y = 0;
    int count = 0;

    std::bitset<4> lfsr(s);
    std::bitset<4> bit(y);
    do
    {
        cout << "lfsr: " << lfsr << endl;
        bit = ((lfsr >> 0) ^ (lfsr >> 2));
        lfsr = (lfsr >> 1) | (bit << 3);
        ++count;
    } while (count < 4);

    cout << endl;
}

我的教授建议使用char,但是输出只是符号而不是二进制。

编辑:也许这能更好地解释我想问的问题。

种子s是线性反馈移位寄存器的起始状态。这是一个随机的4位值.通过让线性反馈移位寄存器产生64位输出来产生G(s)。

EN

回答 2

Stack Overflow用户

发布于 2015-10-26 23:00:52

代码语言:javascript
复制
 stringstream ss;
 do
{
    ss << lfsr ;
    bit = ((lfsr >> 0) ^ (lfsr >> 2));
    lfsr = (lfsr >> 1) | (bit << 3);
    ++count;
} while (count < 16);
return ss.str()
票数 0
EN

Stack Overflow用户

发布于 2015-10-27 01:48:36

在语法方面有点挑剔。lfsr^lfsr 2也是一个非最大lfsr,每6个循环重复一次。lfsr^lfsr 1或lfsr^lfsr 3是最大lfsr,每15个循环重复一次。注lfsr对应于多项式项x^4,lfsr1对应于x^3,lfsr2对应于x^2,lfsr3对应于x,位对应于不存在的lfsr4。

代码语言:javascript
复制
#include <iostream>
#include <bitset>
using namespace std;

void linshift(int s)
{
    int count = 0;
    bitset<4> lfsr(s);
    bitset<1> bit;
    do
    {
// lfsr polynomial = x^4 + x   + 1 = maximal lfsr, repeats every 15 cycles
//      bit = lfsr[0] ^ lfsr[3];
// lfsr polynomial = x^4 + x^3 + 1 = maximal lfsr, repeats every 15 cycles
//      bit = lfsr[0] ^ lfsr[1];
// lfsr polynomial = x^4 + x^2 + 1 = non-max lfsr, repeats ever   6 cycles
        bit = lfsr[0] ^ lfsr[2];
        lfsr = (lfsr >> 1) ^ bitset<4>(bit[0] << 3);
        ++count;
        cout << bit;
    } while (count < 64);
    cout << endl;
}

int main()
{
    for(int i = 1; i < 16; i++)
        linshift(i);
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33356690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档