标签: complement

169
推荐指数
6
解决办法
19万
查看次数

需要帮助理解K&R C第2章中的"getbits()"方法

在第2章,关于按位运算符的部分(第2.9节),我无法理解其中一个示例方法是如何工作的.

这是提供的方法:

unsigned int getbits(unsigned int x, int p, int n) {
    return (x >> (p + 1 - n)) & ~(~0 << n);
}
Run Code Online (Sandbox Code Playgroud)

这个想法是,对于给定的数字x,它将返回从位置p开始的n位,从右边开始计数(最右边的位是位置0).给出以下方法:main()

int main(void) {
    int x = 0xF994, p = 4, n = 3;
    int z = getbits(x, p, n);
    printf("getbits(%u (%x), %d, %d) = %u (%X)\n", x, x, p, n, z, z);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

getbits(63892 (f994), 4, 3) = 5 (5)

我得到了部分内容,但我对"大局"感到困扰,主要是因为我不理解的比特(没有双关语).

我特别遇到问题的部分是补充部分:~(~0 << …

c bit-manipulation operators bit-shift complement

28
推荐指数
3
解决办法
9399
查看次数

在C#中找到两个集合的补充的最快方法

我有两个类型ICollection<MyType>称为c1和的集合c2.我想找到的一组是在项目c2中没有的c1,在争取平等的启发是Id物业MyType.

在C#(3.0)中执行此操作的最快方法是什么?

.net c# linq complement set-operations

26
推荐指数
1
解决办法
5024
查看次数

当bool = true时,为什么补码运算符不起作用?

我编写了这个C++程序,我无法理解为什么它1在第三个cout语句中打印.

#include<iostream>

using namespace std;

int main()
{
    bool b = false;
    cout << b << "\n";  // Print 0
    b = ~b;
    cout << b << "\n"; // Print 1
    b = ~b;
    cout << b << "\n"; // Print 1 **Why?**
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0
1
1
Run Code Online (Sandbox Code Playgroud)

为什么不打印以下内容?

0
1
0
Run Code Online (Sandbox Code Playgroud)

c++ boolean complement

19
推荐指数
3
解决办法
3236
查看次数

如何在Java中反转无符号字节的位?

我正在尝试为非常简单的加密类型编写解码器.通过扫描仪输入0-255的数字,这些位被反转,然后转换为字符并打印.

例如,数字178应转换为字母"M".

178是10110010.

反转所有位应该给出01001101,即77或"M"作为字符.

我遇到的主要问题是,据我所知,Java不支持无符号字节.我可以将值读取为int或short,但由于额外的位,因此在转换期间值将关闭.理想情况下,我可以使用按位补码运算符,但我认为如果我使用带符号数字,我最终会得到负值.关于如何处理这个问题的任何想法?

java unsigned byte bits complement

16
推荐指数
4
解决办法
4万
查看次数

两个补码表示正数是否相同?

二进制补码表示正数是否与二进制表示相同?

binary complement

11
推荐指数
4
解决办法
6万
查看次数

在列表中迭代(item,others)

假设我有一个列表:

l = [0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

如何迭代列表,从列表中获取每个项目及其补充?那是,

for item, others in ...
    print(item, others)
Run Code Online (Sandbox Code Playgroud)

会打印

0 [1, 2, 3]
1 [0, 2, 3]
2 [0, 1, 3]
3 [0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

理想情况下,我正在寻找一个简洁的表达,我可以在理解中使用.

python sequence complement python-itertools

10
推荐指数
1
解决办法
196
查看次数

补充DNA序列

假设我有一个DNA序列.我想得到它的补充.我使用了以下代码,但我没有得到它.我究竟做错了什么 ?

s=readline()
ATCTCGGCGCGCATCGCGTACGCTACTAGC
p=unlist(strsplit(s,""))
h=rep("N",nchar(s))
unlist(lapply(p,function(d){
for b in (1:nchar(s)) {    
    if (p[b]=="A") h[b]="T"
    if (p[b]=="T") h[b]="A"
    if (p[b]=="G") h[b]="C"
    if (p[b]=="C") h[b]="G"
}
Run Code Online (Sandbox Code Playgroud)

replace r bioinformatics complement genetics

8
推荐指数
5
解决办法
7028
查看次数

找到正则表达式的补语

在我的练习表上有一个问题是找到两个公式的补码

(1) (aa|bb)*

(2)(a|b)(aa|bb)(a|b).

在我看来a* | b*,两者的补充只意味着只有a或只有b

regex complement

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

如何找到十进制数的10的补码

什么是1056.074的10的补充?

请检查解决方案:

9999.999 - 1056.074 = 8943.925(9的补充1056.074)

现在1加到.074或8943?

math decimal decimal-point complement number-systems

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