首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向函数发送一个变量,并在C中修改这个变量

向函数发送一个变量,并在C中修改这个变量
EN

Stack Overflow用户
提问于 2013-12-20 01:02:43
回答 1查看 129关注 0票数 1

我有以下几个方面:

代码语言:javascript
复制
char seed[NBITS + 1], x0[NBITS + 1], y0[NBITS + 1], z0[NBITS + 1], dT0[NBITS + 1];

我想改变它在这个函数上的值:

代码语言:javascript
复制
void lfsr(char *bin, char *output)
{
    //bits significativos para fazer o xor NBITS -> NBITS,126,101,99;
    int bits[4];
    int bit;

    if(bin[0] == '0')
        bits[0] = 0;
    else if(bin[0] == '1')
        bits[0] = 1;

    if(bin[2] == '0')
        bits[1] = 0;
    else if(bin[2] == '1')
        bits[1] = 1;

    if(bin[21] == '0')
        bits[2] = 0;
    else if(bin[21] == '1')
        bits[2] = 1;

    if(bin[19] == '0')
        bits[3] = 0;
    else if(bin[19] == '1')
        bits[3] = 1;

    bit = bits[0] ^ bits[1] ^ bits[2] ^ bits[3] ^ 1;
    //reconstruir o vector de char depois do lfsr
    for(int i = 127; i >= 1; i--)
    {
        bin[i] = bin[i - 1];
    }

    bin[0] = (char)(48 + bit);  
    output = bin;
}

例如,我从x中将值放入y0的方式是调用lfsr函数,如下所示:

代码语言:javascript
复制
lfsr(x0, y0);

我做错了什么?

我必须从x0开始做3个Fibonacci线性反馈移位寄存器。

代码语言:javascript
复制
x0 = 10101010101010
y0 = lfsr(101010101010)
z0 = lfsr(y0)
dT0 = lfsr(z0);

结果是好的,但是当我执行上述代码时,如果我使用指针,x0的值将与dT0相同。有谁可以帮我?

谢谢。垃圾堆!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-20 03:00:18

请考虑以下几点:

数字对应于水龙头。位数实际上是15..0,从左到右。以下是Fibonacci线性反馈移位寄存器的实现:

代码语言:javascript
复制
#include <stdio.h>

uint16_t fibLfsr(const uint16_t num)
{
    uint16_t tempNum;

    tempNum = (num) ^ (num >> 2) ^ (num >> 3) ^ (num >> 5);
    tempNum = (tempNum & 0x1) << 15;
    tempNum = (tempNum | (num >> 1));

    return tempNum;
}

int main(void)
{
    uint16_t testNum = 0xACE1;

    printf("%#X\n", testNum);
    testNum = fibLfsr(testNum);
    printf("%#X\n", testNum);

    return 0;
}

我不太清楚为什么要使用字符串并将它们转换为二进制。如果有必要,您将需要stdlibstring中的一些标准库API在调用fibLfsr()之前将字符串转换为uint16_t,然后再返回到字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20694616

复制
相关文章

相似问题

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