我试图在int, char, short, long不使用头文件的情况下打印最小值<limit.h>.所以按位操作将是一个不错的选择.但有些奇怪的事发生了
该声明
printf("The minimum of short: %d\n", ~(((unsigned short)~0) >> 1));
Run Code Online (Sandbox Code Playgroud)
给我
The minimum of short: -32768
Run Code Online (Sandbox Code Playgroud)
但声明
printf("The minimum of short: %d\n", ~((~(unsigned short)0) >> 1));
Run Code Online (Sandbox Code Playgroud)
给我
The minimum of short: 0
Run Code Online (Sandbox Code Playgroud)
这种现象也发生在char.但它不会发生在long, int.为什么会这样?
值得一提的是我使用VS Code作为我的编辑器.当我unsigned char在语句中移动光标时
printf("The minimum of char: %d\n", (short)~((~(unsigned char)0) >> 1));
Run Code Online (Sandbox Code Playgroud)
它给了我一个提示,(int) 0而不是(unsigned char)0我所期望的.为什么会这样?
c bit-shift bitwise-operators implicit-conversion visual-studio-code
我试图在Docker中构建一个容器以进行一些实验。这是我的Dockerfile。
FROM debian
RUN mkdir -p /var/run/sshd
RUN apt-get update
RUN apt-get install -y openssh-server
RUN apt-get install -y sudo
RUN echo AddressFamily inet >> /etc/ssh/sshd_config
ARG username=Rivers
ARG userpasswd=perfectXJ2017
RUN useradd -ms /bin/bash $username && (echo $username:$userpasswd | chpasswd)
RUN adduser $username sudo
CMD /usr/sbin/sshd -D
Run Code Online (Sandbox Code Playgroud)
我试图用命令建立我的形象sudo docker build -t ics-image .。
但是后来我收到了一些错误消息,整个过程停止了。这是错误消息。
Sending build context to Docker daemon 2.048kB
Step 1/11 : FROM debian
---> 8626492fecd3
Step 2/11 : RUN mkdir -p /var/run/sshd
---> …Run Code Online (Sandbox Code Playgroud)