小编Man*_*uel的帖子

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

如何执行字节的循环旋转?

我要实现一个向左和向右执行循环旋转的函数.所以我为这两个操作写了同样的东西.例如,如果你正在旋转左边1010变成0101.这是对的吗?

unsigned char rotl(unsigned char c) {
    int w;
    unsigned char s = c;
    for (w = 7; w >= 0; w--) {
       int b = (int)getBit(c, w);//
       if (b == 0) {
           s = clearBit(s, 7 - w);
       } else if (b == 1) {
           s = setBit(s, 7 - w);
       }
    }
    return s;
}

unsigned char getBit(unsigned char c, int n) {
    return c = (c & (1 << n)) >> n;
}

unsigned char setBit(unsigned char …
Run Code Online (Sandbox Code Playgroud)

c bitmask

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

MergeSort,QuickSort还是HeapSort?

在执行的比较次数和算法所需的存储量方面,三者的相对优势是什么?他们中的哪一个是他们的运行时间保证?

sorting performance memory-efficient

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

字符串的长度

我什么时候进入;

char string[10^4];
scanf("%s", string);
Run Code Online (Sandbox Code Playgroud)

我遇到了运行时错误;

char string[10000];
scanf("%s", string);
Run Code Online (Sandbox Code Playgroud)

工作得很好?

顺便说一句,当输入不是一个大字符串时,两者都工作正常.例如,当字符串是"abc",它在两种情况下都工作正常,但是当它是"wqrjljowspxmsvkjkkogvcyheydhikggaypnjdkbvhnpcxyojowhquouuuceeimgicurheuenjtritfshbbyxpsrlwxpfjwpnsjxwdbjnxaxqhryisyhkqavnxnuillwdutzywkntkkmtckbuikga",它只适用于第二种情况.

原谅我非常长的字符串.这是我的测试用例的一部分.

c

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

标签 统计

c ×3

bitmask ×1

memory-efficient ×1

performance ×1

printf ×1

sorting ×1