Tag: 二进制

为什么unsigned int x = -1和int y = ~0具有相同的二进制表示?

在以下代码段中将是: function的结果 x的值 y的价值 { unsigned int x = -1; int y; y = ~0; if(x == y) 的printf( “同”); 其他 printf(“不一样”); } 一个。 同样,MAXINT,-1 湾 不一样,MAXINT,-MAXINT C。 同样,MAXUINT,-1 d。 同样,MAXUINT,MAXUINT 即 不一样,MAXINT,MAXUINT 有人可以解释我的工作原理或只是解释一下片段吗? 我知道它是关于两个补码n等.MAXINT和-1的意义是什么? 这是因为unsigned int和int的事情 – 我是对的吗?

如何将char转换为二进制?

是否有一种简单的方法将字符转换为二进制表示? 我试图将消息发送到另一个进程,一次一个位。 因此,如果消息是“Hello”,我需要先将“H”转换为二进制,然后按顺序发送这些位。 存储在arrays中将是优选的。 感谢您的任何反馈,伪代码或实际代码将是最有帮助的。 我想我应该提到这是为了让学校的任务能够学习信号……这只是一种了解它们的有趣方式。 SIGUSR1用作0,SIGUSR2用作1,并且点是从一个进程向另一个进程发送消息,假装环境正在锁定其他通信方法。

如何检查整数的二进制表示是否是回文?

如何检查整数的二进制表示是否是回文?

在C中将十进制转换为二进制

我试图将十进制转换为二进制,如192到11000000.我只需要一些简单的代码来做到这一点,但到目前为止我的代码不起作用: void dectobin(int value, char* output) { int i; output[5] = ‘\0’; for (i = 4; i >= 0; –i, value >>= 1) { output[i] = (value & 1) + ‘0’; } } 任何帮助将非常感激!

使用C套接字在HTTP响应中发送二进制文件

我试图在http响应中发送二进制文件(png图像)。 FILE *file; char *buffer; int fileLen; //Open file file = fopen(“1.png”, “rb”); if (!file) { return; } //Get file length fseek(file, 0, SEEK_END); fileLen=ftell(file); fseek(file, 0, SEEK_SET); //Allocate memory buffer=(char *)malloc(fileLen+1); if (!buffer) { fprintf(stderr, “Memory error!”); fclose(file); return; } //Read file contents into buffer fread(buffer, fileLen, 1, file); fclose(file); //free(buffer); char header[102400]; sprintf(header, […]

为什么C不具有二进制文字?

我经常希望我能在c中做这样的事情: val1 &= 0b00001111; //clear high nibble val2 |= 0b01000000; //set bit 7 val3 &= ~0b00010000; //clear bit 5 拥有这种语法似乎是C的一个非常有用的补充,没有我能想到的缺点,对于低级语言而言,这似乎是很自然的事情。 编辑:我看到了其他一些很好的选择,但是当有更复杂的面具时,它们都会崩溃。 例如,如果reg是控制微控制器上I / O引脚的寄存器,并且我想将引脚2,3和7设置为高电平,同时我可以写入reg = 0x46; 但是我不得不花10秒时间思考它(而且每次我在没有看一两天后阅读这些代码时我可能不得不再花10秒钟)或者我可以写reg = (1 << 1) | (1 << 2) | (1 << 6); reg = (1 << 1) | (1 << 2) | (1 << 6); 但我个人认为这不仅仅是写’reg = 0b01000110;’。 […]

如何在C中将hex字符串转换为二进制字符串

我有一个hex值的文本文件。 现在我需要将hex值转换为二进制,并需要将其保存在另一个文件中。 但我不知道如何将hex值转换为二进制字符串! 请帮忙…

在C中显示数字的二进制表示?

可能重复: 是否有printf转换器以二进制格式打印? 还在学习C和我在想: 给定一个数字,是否可以执行以下操作? char a = 5; printf(“binary representation of a = %b”,a); > 101 或者我是否必须编写自己的方法来转换为二进制?

哪种C数据类型可以表示40位二进制数?

我需要表示一个40位的二进制数。 应该使用哪种C数据类型来处理这个问题?

按位运算等效于大于运算符

我正在研究一个函数,它基本上可以看到两个整数中的哪一个更大。 传递的参数是2个32位整数。 诀窍是允许的唯一操作员! ~ | & <> ^ ! ~ | & <> ^ ! ~ | & <> ^ (没有转换,除了signed int,*,/, – 等其他数据类型。)。 到目前为止,我的想法是将两个二进制文件组合在一起,以查看它们不共享的1值的所有位置。 我想要做的就是取这个值并将最远的1隔离开来。 然后看看它们中的哪一个具有该值。 那个价值就会越大。 (假设我们使用8位整数而不是32位)。 如果传递的两个值是01011011和01101001我在它们01101001使用了^来得到00100010 。 然后我想把它变成00100000换句话说01xxxxxx -> 01000000那么&它的第一个数字!! 结果并将其归还。 如果它是1 ,则第一个#更大。 有关如何01xxxxxx -> 01000000或其他什么帮助的任何想法? 忘记注意:没有ifs,whiles,fors等……