标签: bits

意外的位移结果

我正在初始化一个带有= 0xff的无符号短整数(所有位都已设置).然后我将b分配给>> 7,它应该产生(0000 0001)并且确实如此.然而,奇怪的是,当我将c分配给<< 7时,它不等于(1000 0000).我通过输出0x80(1000 0000)和c来测试它,但它们不一样.

这是一些代码:

unsigned short int a = 0xff;
unsigned short int b = a>>7;
unsigned short int c = a<<7; // c should == 0x80
Run Code Online (Sandbox Code Playgroud)

我不确定问题是什么.任何帮助表示赞赏.谢谢.

PS"输出"是指输出0x80和十进制和十六进制形式的c.

c binary bits bit-shift

3
推荐指数
2
解决办法
377
查看次数

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

寻址32个字节需要多少位?

对不起,这是一个非常愚蠢的问题,只是查看我的操作系统课程的旧试卷,并注意到这个问题可以经常出现.如何解决这个问题?我真的不明白.

另一个问题是:

可以用7位,9位和10位表示的最大和最小无符号整数是多少?

有人能告诉我你将如何解决这个问题吗?它只是2 ^ 7吗?

非常感谢 !:)

byte bits unsigned-integer

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

为什么可以存储的最小值是字节(8位)而不是位(1位)?

为什么可以在内存中存储Byte(8bit)而不是Bit(1bit)的最小值?即使布尔值也存储为字节.我们是否会将最小的数字压缩到32或64位,就像CPU上的寄存器一样?

memory cpu byte bits

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

读/写内存中的位

假设我有一个void*内存地址,我需要打印位于该内存地址中的位.我怎样才能做到这一点?

在我的处理器中,内存地址是32位,内存值也是32位,int也是32位.所以我想这样做:

unsigned int value = *memory_address;
Run Code Online (Sandbox Code Playgroud)

然后通过简单的算术(一些moddiv操作)来获取保存的值的位memory_address.

例如,value mod 2将给出该值的最后一位,依此类推.但是从我所知道的(我期待不同的位)它不起作用.有什么想法吗?

还有,是否有人知道现成的C源代码"做"这样,从内存中读取/写入位?

c memory bits

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

如何用c语言创建一个指针

正如我们所知,在c语言中,char指针逐字节遍历内存,即每次1字节,每次整数指针4字节(在gcc编译器中),每次2字节(在TC编译器中).

例如:

char *cptr; // if this points to 0x100
cptr++;     // now it points to  0x101

int *iptr;  // if this points to 0x100
iptr++;     // now it points to  0x104
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如何在c中创建位指针,逐位递增遍历存储器?

c byte pointers bits

3
推荐指数
2
解决办法
7985
查看次数

深入理解二进制文件

我正在学习C++特别关于二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字的主题完全不熟悉,所以我决定向后退一步,对主题建立一个扎实的理解.

在下面我已经包含的图片中,我blue thief在一个.txt文件中写了两个单词().

在此输入图像描述

原因是,当我使用hexeditor解码文件时,我想了解信息是如何以十六进制格式存储的.现在,不要误解我的意思,我并不是试图通过整天阅读十六进制格式来谋生,而只是对二进制文件组合的基本知识有最低限度的理解.我也知道所有文件都有不同的结构,但只是为了理解,我想知道,"蓝色小偷"和单个' '(空格)这些词是如何被转换成这些字符的.

还有一件事是,我听说二进制文件包含三种类型的信息:

header,ftm&和data!那只关注音频,视频等多媒体文件吗?因为,我似乎看不到任何东西,除了它看起来data只是这个文件中的一块.

windows hex bits hex-editors binary-data

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

python检查顺序中的位是true还是false

如果我有一个11010011的位序,我想找一个序列中的位是1还是0(真或假),我怎样才能检查第4个位置是真还是假?

例:

10010101 (4th bit) -> False
10010101 (3rd bit) -> True
Run Code Online (Sandbox Code Playgroud)

python bits

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

如何在没有填充位的情况下在C中输出二进制文件

我想将结构数据输出到二进制文件,但每个变量的信息之间没有任何填充位.例如:

struct s {
    int i1;
    short s1;
    char c1;
};
struct s example[2];
Run Code Online (Sandbox Code Playgroud)

如果我使用fwrite(&example, sizeof(struct s), 2, file)的二进制文件仍然之间,例如,填充比特s1c1,也从c1i1 (of the 2nd struct).

从输出文件中删除这些填充位的好方法是什么?

谢谢!任何帮助表示赞赏

c binary bits padding output

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

什么是最高和最低整数,用于表示2位补码中5位的有符号数?

我理解二进制是如何工作的,我可以计算二进制到十进制,但我在签名数字周围丢失了.我找到了一个可以进行转换的计算器.但我不确定如何找到最大值和最小值或转换如果没有给出二进制数,StackO中的问题似乎是关于转换特定数字或不包括带符号数字到特定位.

具体问题是:

We have only 5 bits for representing signed numbers in two's complement:

What is the highest signed integer? 
Write its decimal value (including the sign only if negative).

What is the lowest signed integer? 
Write its decimal value (including the sign only if negative).
Run Code Online (Sandbox Code Playgroud)

好像我必须在二进制概念上更重,我只有2个月的编程,我以为我知道二进制转换.

math binary bits bit twos-complement

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