小编Jua*_*ews的帖子

为什么没有留下位移<<在long int数据类型中移位超过31?

我想在我的程序中使用以下代码,但是gcc不允许我将我的1转移到31以上.

sizeof(long int) 显示8,所以这并不意味着我可以离开直到63?

#include <iostream>

using namespace std;

int main(){
    long int x;
    x=(~0 & ~(1<<63));
    cout<<x<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译输出以下警告:

left shift `count >= width` of type [enabled by default] `x=(~0 & ~(1<<63))`;
                                                                    ^
Run Code Online (Sandbox Code Playgroud)

输出为-1.如果我离开31位,我得到2147483647正如预期的那样.

我希望除了MSB之外的所有位都打开,从而显示数据类型可以容纳的最大值.

c++ bit-shift

8
推荐指数
1
解决办法
6599
查看次数

以特定用户身份从php执行bat文件

我已经设置了Web服务器并基于HTTP请求,并且需要以其他用户身份执行脚本。

因此,关于这一点,我可以按照需要的用户身份运行HTTP吗?

或者我可以非交互方式提供密码,并在bat文件的第一行中包含以下内容。

runas /user:dmn1\user1 cmd
Run Code Online (Sandbox Code Playgroud)

php batch-file

5
推荐指数
1
解决办法
154
查看次数

在python中使用数学模块的sqrt函数来获取长数

我正在使用python中的200位数字.当使用math.sqrt(n)找到数字的平方根时,我得到了错误的答案.

In[1]: n=9999999999999999999999999999999999999999999999999999999999999999999999
       999999999999999999999999998292000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000726067

In[2]: x=int(math.sqrt(n))

In[3]: x
Out[1]: 10000000000000000159028911097599180468360808563945281389781327
        557747838772170381060813469985856815104L

In[4]: x*x
Out[2]: 1000000000000000031805782219519836346574107361670094060730052612580
        0264077231077619856175974095677538298443892851483731336069235827852
        3336313169161345893842466001164011496325176947445331439002442530816L

In[5]: math.sqrt(n)
Out[3]: 1e+100
Run Code Online (Sandbox Code Playgroud)

由于x*x(201位)大于n(200位),因此x的值大于预期值.这里发生了什么?是否有一些概念我在这里错了?我怎么能找到大数字的根?

python long-integer

4
推荐指数
2
解决办法
4584
查看次数

在kafka集群中使用的FInd代理ID

我想知道kafka集群中获取的代理ID列表.例如,在具有10个节点的集群中,如果我创建一个包含10个分区(或更多)的主题,我可以从describe topic命令的输出中看到已分配它的代理.

./bin/kafka-topics --describe --zookeeper <zkconnect>:2181 --topic rbtest3
Run Code Online (Sandbox Code Playgroud)

我可以在不创建主题的情况下收集此信息吗?

apache-kafka

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

运行厨师客户端时无法从食谱中找到食谱

我正在尝试使用 Chef-client 在独立系统上测试食谱,但一直收到以下命令的错误。

我可以通过使用运行 default.rb

sudo chef-client -z -o "recipe[kafkaSetup]"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行另一个配方时,出现以下命令的错误。

sudo chef-client -z -o "recipe[kafkaSetup::reBalanceCluster.rb]"
Run Code Online (Sandbox Code Playgroud)
[2016-10-18T06:09:33-04:00] WARN: No config file found or specified on command line, using command line options.
Starting Chef Client, version 12.12.15
[2016-10-18T06:09:37-04:00] WARN: Run List override has been provided.
[2016-10-18T06:09:37-04:00] WARN: Original Run List: []
[2016-10-18T06:09:37-04:00] WARN: Overridden Run List: [recipe[kafkaSetup::reBalanceCluster.rb]]
resolving cookbooks for run list: ["kafkaSetup::reBalanceCluster.rb"]
Synchronizing Cookbooks:
  - kafkaSetup (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...

================================================================================
Recipe Compile Error
================================================================================

Chef::Exceptions::RecipeNotFound
--------------------------------
could …
Run Code Online (Sandbox Code Playgroud)

chef-infra chef-recipe

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

/etc/environment 文件未执行某些命令

下面给出的是我的 /etc/environment 文件的内容

alias ...="cd ../../"
alias ls="ls -al"
export blah="blah blah"
Run Code Online (Sandbox Code Playgroud)

当我启动新的终端会话并更改为 sudo user as 时sudo su,只有 export 命令已运行,我可以使用 env 进行验证。未设置别名。

如果我运行source /etc/environment别名按预期设置。我错过了什么吗?我还读到 /etc/environment 仅在系统启动时读取。真的吗?

我在 RHEL 7 上运行。

bash environment-variables

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

"cat xyz> z"如何运作?

我有三个文件x,y和z以及一些内容.

如果我运行$cat x y z > z它似乎在将x和y写入z之前截断文件z.

我期望它只是将x,y和z的内容连接成z.有人可以解释为什么不是这样吗?还请解释我收到的这个警告

$ echo "one" > x
$ echo "two" > y
$ echo "three" > z
$ cat x y z 
  one
  two
  three
$ cat x y z > z
  cat: z: input file is output file
$ cat z
  one
  two
Run Code Online (Sandbox Code Playgroud)

linux bash

-1
推荐指数
1
解决办法
163
查看次数

在c中的格式说明符中使用`+`

为什么以下程序的输出是d

另外,请解释+printf语句中的用法.

?#?include?"stdio.h"
int main(){
    int a=1;
    printf("%d"+a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c printf

-2
推荐指数
1
解决办法
53
查看次数