bit

    0热度

    1回答

    当我试图估计需要存储多少内存来存储所有32位整数时,我努力想知道4 GB图形来自哪里。 32位整数数据类型有32位,可以设置为1或0每位。这是2^32个可能的表示。每个表示需要32位,总共需要32 * 2^32位,或者2^5 * 2^32 = 2^37位。 而2^37位大约是17 GB,而不是4 GB。 我哪里错了?

    -2热度

    1回答

    嗨,大家好我在GoLang写了这个功能蒙上了24位的int(3个字节)的32位的int(4个字节) func int24ToInt32(bytes []byte) uint32 { return binary.BigEndian.Uint32(append([]byte{0x00}, bytes...)) } 我想知道这是一个坏解决问题的方法。也许有人可以指导我找到更好更高效的解决

    2热度

    1回答

    我尝试生成正交信号,但操作可能最低。我使用STM32和GPIO引脚B8和B9来发送信号。 引脚8和9的几个引脚有四种可能的选项: 0/0 1/0 1/1和0/1 和逆时针 0/0 0/1 1/1 1/0 I无法按位寻找方式以便能够快速设置或重置选定引脚的位。此外,我必须能够进行时钟或反向旋转,并随时改变感觉,如果它是旋转或线性编码器。 谢谢您的帮助

    0热度

    1回答

    说我有以下数据: name is_married has_dog wants_children Tom 1 1 1 Dick 0 1 1 Harry 0 0 0 但我希望得到以下数据: name description Tom is_married Tom has_dog Tom wants_children Dick has_dog Dic

    -6热度

    1回答

    的 在下面的代码给出输出-1。 #include <iostream> using namespace std; int main() { int x=0; cout<<~x; return 0; } 但是,当我做如下修改答案更改4294967295。 只是想知道,为什么在INT它是不是给-2147483647这是111 .... 32倍 #include

    -3热度

    1回答

    我想了解在C位AND运算符;它的工作原理,直到我在177 我做手工这方面投入了0,以确保我了解编译器做 #include <stdio.h> main() { printf ("%d\n", 1999 & 177); return 0; } 上面的答案是129,这是我的答案当我用手做的时候 #include <stdio.h> main() { prin

    -1热度

    1回答

    假设我有一些int x。我只想打印x的前5位。我怎样才能做到这一点?我听说,我可以这样做 printf("%d", x & 0x05); 打印x的前五位,但是这只是在我的函数输出0。

    2热度

    2回答

    我的任务是编写一个或多个C语句,清除变量“x”的位11和12(而不会干扰其他位使用位)级C运营商。我的教授说:“下面声明的变量”掩码“可能会有所帮助。” int mask = 0x00001800; int x = arbitrary_value; 我应该使用移位操作结合位级操作吗?我有点不清楚如何做到这一点。

    3热度

    1回答

    在下面的代码中,我得到A = -1作为输出。我想,这是因为我正在溢出3位的A成员。 我在这方面有两个问题: 不应该编译器考虑最后3位,并忽略其余成员A?为什么价值是负面的? 如果考虑所有位,为什么我会得到B = 0的值作为输出? 我以为A会有7的值,但我显然是误解了一些东西。请帮忙。 #include <stdio.h> typedef struct { char A: 3;

    4热度

    5回答

    的,我注意到一些奇怪的行为与支架 bitshifting #include <stdio.h> int main(void) { unsigned char c; unsigned char d; c = 153; c = (c << 7) >> 7; printf("%d\n", c); d = 153; d = (