标签: bit

字节到二进制在C中

我试图简单地将从fget接收的字节转换为二进制.

我知道第一个字节的值是基于打印值的49.我现在需要将其转换为二进制值.

unsigned char byte = 49;// Read from file
unsigned char mask = 1; // Bit mask
unsigned char bits[8];

  // Extract the bits
for (int i = 0; i < 8; i++) {
    // Mask each bit in the byte and store it
    bits[i] = byte & (mask << i);
}
 // For debug purposes, lets print the received data
for (int i = 0; i < 8; i++) {
printf("Bit: %d\n",bits[i]);
}
Run Code Online (Sandbox Code Playgroud)

这将打印:

Bit: 1
Bit: 0 …
Run Code Online (Sandbox Code Playgroud)

c binary byte bit

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

原子比较C中两个整数的最快方法?

uint64_t n;      // two 32-bit integers

return ( (uint32_t)(n >> 32) == (uint32_t)n );
Run Code Online (Sandbox Code Playgroud)

将32个最高有效位与uint64_t的32个最低有效位进行原子比较的最快方法是什么?

我认为一个可怕的解决方案是:获取自旋锁,读取32 LSB,读取32 MSB,比较得到结果,释放自旋锁,返回结果.有没有办法做到这一点,而不必采取螺旋锁?

c caching atomic bit

9
推荐指数
2
解决办法
2400
查看次数

如何在MySQL 5.1中转换int?

我正在从SQL Server转换到MySQL 5.1,似乎试图使用select语句创建一个表,以便列有点.

理想情况下,以下方法可行:

CREATE TABLE myNewTable AS
SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit
FROM myOldtable
Run Code Online (Sandbox Code Playgroud)

然而sql对于转换非常不满意.我怎么能告诉它选择一个int列(我知道只有0和1)作为一个位?

mysql casting bit mysql-5.1

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

如何将两个字节转换为一个16位数?

据我所知,1个字节将保存0-255之间的数字.并且16位数字介于0-65535之间.

如果我试图使用两个独立的8位寄存器来表示一个16位数字......我该怎么做?数学如何运作?

谢谢!

embedded assembly byte bit

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

在C中使用位字段时的字段顺序

我有一个以下类型的结构

typedef struct
{
unsigned int a : 8;
unsigned int b : 6;
unsigned int c : 2;
}x, *ptr;
Run Code Online (Sandbox Code Playgroud)

我想做的是改变字段c的值.

我做了类似以下的事情

x structure = { 0 };
x->c = 1;
Run Code Online (Sandbox Code Playgroud)

当我查看内存映射时,我希望找到00 01,但我找到00 40.看起来在排列第二个字节时,它将c字段放在最低位中,将b字段放在最高位中.我在GCC和Windows编译器上看过这个.

现在,我做的是以下,这是正常的.

unsigned char ptr2 = (unsigned char*) ptr
*(ptr2 + 1)  &= 0xFC
*(ptr2 + 1)  |= 0x01
Run Code Online (Sandbox Code Playgroud)

我看内存图错了吗?谢谢您的帮助.

c gcc bit-manipulation bit bit-fields

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

c#中set和set all之间的差异

当我在程序中使用setall时:

BitArray bb = new BitArray(8) ;
bb.SetAll( true);

int[] dd = new int[1];           

bb.CopyTo(dd, 0);

for (int i = 0; i < dd.Length; i++)
    Console.WriteLine(dd[i]);

// result is  -1
Run Code Online (Sandbox Code Playgroud)

但如果我为bitarray的每个元素使用set

BitArray bb = new BitArray(8) ;
bb.Set( 0,true);
bb.Set(1, true);
bb.Set(2, true);
bb.Set(3, true);
bb.Set(4, true);
bb.Set(5, true);
bb.Set(6, true);
bb.Set(7, true);

int[] dd = new int[1];           

bb.CopyTo(dd, 0);         

for ( int i = 0; i < dd.Length; i++)
    Console.WriteLine(dd[i]);

// result is 255
Run Code Online (Sandbox Code Playgroud)

当使用设置结果为-1并且在第二个程序结果中使用setall为255时,为什么两个程序中的不同结果?

c# asp.net arrays bit

9
推荐指数
1
解决办法
145
查看次数

Jenkins返回状态码128

我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我这个错误代码:

Started by user Dakado
Building in workspace /var/lib/jenkins/workspace/TEST852
Fetching changes from the remote Git repository
Fetching upstream changes from git://bitbucket.org/GameTeamCZ/gtplaytime.git
FATAL: Failed to fetch from git://bitbucket.org/GameTeamCZ/gtplaytime.git
hudson.plugins.git.GitException: Failed to fetch from git://bitbucket.org/GameTeamCZ/    gtplaytime.git
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:625)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:847)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:872)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:651)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:560)
at hudson.model.Run.execute(Run.java:1670)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git://    bitbucket.org/GameTeamCZ/gtplaytime.git +refs/heads/*:refs/remotes/origin/*"     returned status code 128:
stdout: 
stderr: bitbucket.org[0: 131.103.20.167]: errno=Connection timed out
bitbucket.org[0: …
Run Code Online (Sandbox Code Playgroud)

status bitbucket bit jenkins

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

在ulong(C#)中获得最后一个有效位位置的最快方法?

什么是从最低有效位(LSB)到ulong(C#)中的最高有效位(MSB)的第一个设置(1)位位置的最快(或至少非常快)的方法?对于ulong i = 18; (10010),将为2(如果我们从0开始计算位置,则为1).

MS C++编译器具有 _BitScanForward64用于此任务的内在函数,但C#编译器没有模拟.

.net c# performance bit-manipulation bit

9
推荐指数
2
解决办法
2367
查看次数

请解释逻辑右移,右移右移和向右旋转之间的区别

我一直在阅读经典黑客的喜悦,我无法理解逻辑右移,算术右移和右旋之间的区别.如果怀疑看起来太简单,请原谅.

还有为什么没有算术转移呢?

bit-manipulation bit-shift bit bitwise-operators

9
推荐指数
3
解决办法
8805
查看次数

在Java中将字节转换为长度为4的布尔数组

我需要在Java中将一个字节转换为4个布尔值的数组.我怎么能这样做?

java byte bit

8
推荐指数
2
解决办法
9550
查看次数