我需要确定一个有符号的 32 位数字是否是 2 的幂。到目前为止,我知道要做的第一件事是检查它是否为负数,因为负数不能是 2 的幂。然后我需要查看下一个数字是否有效等等......所以我可以这样写:
// Return 1 if x is a power of 2, and return 0 otherwise.
int func(int x)
{
return ((x != 0) && ((x & (~x + 1)) == x));
}
Run Code Online (Sandbox Code Playgroud)
但是对于我的任务,我只能使用其中的 20 个运算符:
! ~ & ^ | + << >>
Run Code Online (Sandbox Code Playgroud)
并且没有相等语句或循环或强制转换或语言结构。
所以我试图转换相等部分,我知道 !(a^b) 与 a == b 相同,但我似乎无法完全弄清楚。关于如何将其转换为允许的运营商的任何想法?
我有以下二进制数
uint64_t = 0b0100;
Run Code Online (Sandbox Code Playgroud)
我想否定它
0b1011
Run Code Online (Sandbox Code Playgroud)
这是一个具体的例子,但我希望它适用于任何二进制数变量。例如,
uint64_t a
那么是否有像 negate 这样的函数可以使以下内容成立
a == negate(negate(a));
Run Code Online (Sandbox Code Playgroud) 我想覆盖 exe 中的字节。
所以我需要生成一个随机字符串,将其转换,然后将其写入exe。
我需要以这种格式覆盖你在那里看到的 4 个十六进制字符串 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12) 需要破折号,所以这对我来说也是一个问题。
这是第一个字符串的位置。


我完全不知道如何开始这个,我如何用随机字符串以正确的格式覆盖这 4 个字符串(十六进制,所以随机只能是 0123456789abcdef)
任何帮助深表感谢。
我想反转一个数字的二进制表示。
程序中的方法通过参数 col 接收 6 个字符的十六进制颜色代码。它应该将此值转换为其二进制对应值(例如,1111 变为 0000,反之亦然),然后翻转所有位。然后应将此新值转换回其十六进制等值。这将产生原始彩色图像的颜色反转。
我不完整的代码,
public String invertColor(String col)
{
String inverted = col;
int i = Integer.parseInt(inverted, 16);
String bin = Integer.toBinaryString(i);
System.out.println(bin);
return inverted;
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢。
我有一个从二进制文件中读取“块”的类。我这样使用它:
while(log.HasNextBlock()) {
block = log.GetNextBlock();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我在文件末尾,我需要检查函数 HasNextBlock() 的内部,在这种情况下我将返回 false。我正在尝试使用 feof() 来检查,但我读到在调用 feof() 之前我必须执行读取操作,但在我的情况下,读取操作是在 GetNextBlock() 中完成的,即在调用 feof 之后()。
有没有办法查看我是否在二进制文件的末尾而不执行会修改“上下文”的操作(即不更改文件中的当前位置或任何其他变量)?
谢谢你的帮助 !:)
(不确定是否允许我提出这样的问题,但如果被问到会删除)使用 8 位和 2 的补码格式将 -25 转换为二进制表示以表示负数。到目前为止,我得到了 11001。
我尝试使用 google 方法,但我不确定如何使用 8 位方式进行操作。
这个问题不是使用代码,只是转换,但我所做的是将其转换为二进制 11001 然后我添加了 3 个零使其成为 8 位(假设这是正确的) 00011001 然后我做了 1 的补码 11100110 和 2 的补码通过加 1等于 11100111。
我不确定这是否正确。
我想在 python 中执行从 32 位二进制到浮点数的 IEEE 754 转换。
我试过这个
import struct
f = int('11000001101011000111101011100001', 2)
print struct.unpack('f', struct.pack('i', f))[0]
Run Code Online (Sandbox Code Playgroud)
但这不适用于带有负符号位的数字。
预期的输出应该是这样的:
bintofloat(11000001101011000111101011100001)
>>> -21.56
Run Code Online (Sandbox Code Playgroud) 我正在尝试.format()在想要打印的 python 中使用
1 到 N 以空格填充,以便所有字段都采用与二进制值相同的宽度。
以下是我迄今为止尝试过的
n=int(input())
width = len("{0:b}".format(n))
for num in range(1,n+1):
print (' '.join(map(str,(num,oct(num).replace('0o',''),hex(num).replace('0x',''),bin(num).replace('0b','')))))
Run Code Online (Sandbox Code Playgroud)
我不知道如何在.format()这里正确使用该功能。请帮忙
我想通过我的 C# 代码将一个二进制参数存储在我的 Elasticsearch 服务器中。我尝试在索引类中使用的类型都没有转换为它。
有没有办法明确指示我的程序存储二进制文件,比如从字节数组(当然可以转换为其他类型)?
或者,有没有办法配置不存储的参数(如 Json 属性"stored": false)?对我来说主要问题是复制和索引那个大参数(不理想但足够)
更新:我试图将我的 NEST 版本降级到 1.6.1 以使用该属性
[ElasticProperty(Name = "Data", Type = FieldType.Binary, Store = false)]
public byte[] Data { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是当我使用该属性保存文档时,它仍然坚持映射一个字符串(我通过GET mydb/_mapping在我的 Sense 插件中运行来检查)
如何编写一个用零填充的二进制文件作为二进制数字?
例如,我有 8 位零,如 00000000,它将被保存为一个字节。