一个同事给了我一个难题,我无法弄清楚这个C程序实际上是如何编译和运行的。这个>>>=运算符和奇怪的1P1字面值是什么?我在Clang和GCC中进行了测试。没有警告,输出为“??”

#include <stdio.h>

int main()
{
    int a[2]={ 10, 1 };

    while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] )
        printf("?");

    return 0;
}

例如,乘法和除法可以使用位运算符来实现

i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)

等等。

用say (i<<3)+(i<<1)乘10是否比直接用i*10更快?有没有什么输入是不能用这种方法乘或除的?

Git在提交时将以#开头的行视为注释行。在使用票务跟踪系统时,试图将票号写在行首是非常令人讨厌的。

#123 salt hashed passwords

Git会简单地从提交消息中删除这一行。是否有一种方法来逃避散列?我试过了,但是都没用。#之前的空格被保留,所以这也不是解决问题的有效方案。

我不完全明白Node.js是关于什么的。也许是因为我主要是一个基于web的商业应用程序开发人员。它是什么?它有什么用?

目前我的理解是:

编程模型是事件驱动的,特别是它处理I/O的方式。 它使用JavaScript,解析器是V8。 它可以很容易地用于创建并发服务器应用程序。

我的理解正确吗?如果是,那么事件I/O的好处是什么,它只是更多的并发性的东西吗?另外,Node.js的方向是成为一个框架,像基于JavaScript(基于V8)的编程模型吗?

我正在开发一个网站,需要在打印视图上工作。通常当我有布局问题时,我使用Chrome的元素检查器。但是,这在打印预览模式中不存在。

是否有一个Chrome插件或其他方式来改变你的浏览器本身的观看媒介,以查看一个页面的打印机会?我想它没有一个Chrome特有的解决方案,但那是我的主要浏览器,所以有一个浏览器内的解决方案会很好。

现在我只专注于打印预览媒体,但如果能够切换到任何支持的媒体类型(即所有/盲文/压花/手持/打印/投影/屏幕/语音/tty/电视)将是理想的。

我一直在尝试在业余时间学习C,而其他语言(C#、Java等)都有相同的概念(通常是相同的运算符)。。。

在核心层面,比特移位(<<,>>,>>)做什么,它可以帮助解决什么问题,以及弯道周围潜伏着什么陷阱?换言之,这是一个绝对的初学者指南,可以让你充分利用它的优点。