Tag: 二进制

OpenSSL的BN_bn2binfunction出现问题

我正在尝试在OpenSSL中使用BN_ *函数。 具体来说,我有以下代码: #import BIGNUM * num = BN_new(); BN_set_word(num, 42); char * buffer = malloc((BN_num_bytes(num)+1) * sizeof(char)); buffer[BN_num_bytes(num)] = ‘\0’; int len = BN_bn2bin(num, buffer); printf(“42 in binary is %s\n”, buffer); 但是,当我这样做时,我没有得到一串零和一个零。 相反,它打印”42 in binary is *” 。 据我所知,从网上可用的非常有限的例子我已经比较过这个例子,我已经正确地实现了这一点。 任何想法为什么它不起作用?

C中的十进制到二进制

我正在创建一个添加和减去2个数字的程序。 然后我必须将这个答案输出到不同的基础。 我的答案是十进制格式,类型为long double,例如: long double answer; answer = numberOne + numberTwo; 我想将这个答案转换成二进制。 现在我在我的程序中使用的代码执行此操作,但使用char指针: char * decimalBinary (char * decimalNumber) { bool zeroFront = true; int i; int z; int j = 0; int n = atoi(decimalNumber); char * binaryNum = malloc(32+1); binaryNum[32] = ‘\0’; int current_index=1; int end_index = strlen(decimalNumber)-1; //Error check for valid […]

在C中写入位图文件头的问题

我正在尝试使用C创建一个新的位图文件。这是.bmp文件头的结构。 #define uint16 unsigned short #define uint32 unsigned long #define uint8 unsigned char typedef struct { uint16 magic; //specifies the file type “BM” 0x424d uint32 bfSize; //specifies the size in bytes of the bitmap file uint16 bfReserved1; //reserved; must be 0 uint16 bfReserved2; //reserved; must be 0 uint32 bOffBits; } BITMAPFILEHEADER; 在我的计划中,我这样做。 main() { FILE* […]

使用XOR交换单个位

我正在读这篇文章用Xor交换单个位来交换给定数字的位。 作为* 交换比特范围的一个例子, 假设我们有b = 00101111(以二进制表示),我们想要交换从i = 1开始的n = 3个连续比特(右边的第二个比特)和3个连续比特从j = 5开始; 结果将是r = 11100011(二进制)。 *但我无法理解它是如何工作的。 鉴于代码是 unsigned int i, j; // positions of bit sequences to swap unsigned int n; // number of consecutive bits in each sequence unsigned int b; // bits to swap reside in b unsigned int r; // bit-swapped result […]

如何在C中检查文件是文本(ASCII)还是二进制文件

我需要编写C代码来检查文件是文本(ASCII)还是二进制文件 有人可以帮忙吗? 谢谢

将有符号整数除以2的幂

我正在研究一种方法,只使用二元运算符(<> + ^〜&|!)将有符号整数除以2的幂,结果必须向0舍入。我也遇到了这个问题关于问题的Stackoverflow,我无法理解为什么它的工作原理。 这是解决方案: int divideByPowerOf2(int x, int n) { return (x + ((x >> 31) & ((1 <> n; } 我理解x >> 31部分(如果x是负数,则仅添加下一部分,因为如果它是正x则将自动向0舍入)。 但令我困扰的是(1 << n) + ~0部分。 它怎么样?

C端转换:逐位转换

我有一个特殊的无符号长整数(32位),我需要逐位转换它的字节顺序 – 我的long表示几个所有的东西都一起变成一个二进制文件。 我该怎么做?

需要有关二进制文件的帮助

我在创建一个代码时遇到了问题,该代码创建了一个包含多行的bin文件,每行包含6行值。 例如:我正在做一个小项目,其中每一行都是一个’密码’,所以我的系统将加载这个文件并从中读取所有密码,当它更新等等时我没有实现读取文件的方式但因为我正在努力操纵文件。 这个项目将在linux上运行,具有Raspberry pi的GPIOfunction,所以我使用Visual Studio来创建主代码。 我目前的代码是: #define _CRT_SECURE_NO_WARNINGS #include #include #include char keys[4] = { ‘1’, ‘2’, ‘3’, ‘4’ }; // NOT USING char temp_key[6]; int incl_key() { int i; FILE *fp; char code = “0”; int control = 0; int var_internal = 0; fp = fopen(“keys.bin”, “wb”); if (fp == NULL) { printf(“\n Error […]

使用C将整数转换为二进制表示?

我仍然是编码的初学者,所以我遇到了这个问题,我试图将整数转换为二进制表示 #include int main () { int x; printf(“input the number\n”); scanf(“%d”,&x); while(x!=0) { if (x%2) printf(“1”); else printf(“0”); } return 0; } 所以输出像1​​2 = 0011但12 = 1100有什么问题,如何解决?

C:构建一个字节

我有一个包含16个元素的数组。 我想将这些评估为布尔值0或1,然后将其存储在2个字节中,以便我可以写入二进制文件。 我该怎么做呢?