小编mah*_*ood的帖子

在bash中打印文件夹名称

这段bash代码在存在许多文件夹时没有显示文件夹名称.

#!/bin/bash

for file in .; do
  if [  -d $file ]; then 
    echo $file
  fi
done
Run Code Online (Sandbox Code Playgroud)

只有输出才能. 解释原因吗?

linux bash

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

用setw证明文本

我想证明这样的输出文本

 0x29823d80    0x10019b8         /    0 00000000000000000000000000000001
 0x37449e60    0x10dfc           /   12 00000000000000000001000000000000
Run Code Online (Sandbox Code Playgroud)

但是有了这个说法

  fout << std::setw(5) << std::hex << "0x" << (*it).addr << " " 
       << std::setw(5) << std::hex << "0x" << (*it).pc << std::setw(10) << "/" << std::setw(5) << std::dec << (*it).off << "\t" 
       << std::setw(5) << (*it).layout << "\n";
Run Code Online (Sandbox Code Playgroud)

我明白了:

0x29823d80    0x10019b8         /    0  00000000000000000000000000000001
0x37449e60    0x10dfc         /   12    00000000000000000001000000000000 
Run Code Online (Sandbox Code Playgroud)

c++ setw

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

printf with -arch = sm_20不会在内核文件中显示任何内容

我在我的cuda程序中添加了一些printf语句

__device__ __global__ void Kernel(float *, float * ,int );
void DeviceFunc(float *temp_h , int numvar , float *temp1_h)
{ .....
    //Kernel call
    printf("calling kernel\n");
    Kernel<<<dimGrid , dimBlock>>>(a_d , b_d , numvar);
    printf("kernel called\n");
  ....
}

int main(int argc , char **argv)
{   ....
    printf("beforeDeviceFunc\n\n");
    DeviceFunc(a_h , numvar , b_h); //Showing the data
    printf("after DeviceFunc\n\n");
    ....
}
Run Code Online (Sandbox Code Playgroud)

同样在Kernel.cu中,我写道:

#include<cuda.h>
#include <stdio.h>
__device__ __global__ void Kernel(float *a_d , float *b_d ,int size)
{
    int idx = threadIdx.x ;
    int idy = …
Run Code Online (Sandbox Code Playgroud)

printf cuda

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

将std :: string转换为char*

可能重复:
将std :: string转换为const char*或char*

我有一个std::string并希望将其作为文件名传递给fstream

std::string fname = "/home/mahmood/filter" + boost::lexical_cast<std::string>(b) + ".txt";
std::fstream fout (fname, std::fstream::app | std::fstream::out);
Run Code Online (Sandbox Code Playgroud)

但我得到了第二行的错误

error: no matching function for call to ‘std::basic_fstream<char, std::char_traits<char>   >::basic_fstream(std::string&, 
Run Code Online (Sandbox Code Playgroud)

似乎它无法转换stringchar *.此外,铸造不起作用

c++ string char

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

想逐行阅读,但fstream只读第一行

一个非常简单的程序:逐行读取文件(每行包含整数)然后执行某些操作并将输出写入文件.

int main()
{
  ifstream fin ("f:\in.txt");
  ofstream fout ("f:\out.txt");

  int a;
  while (fin >> a) {
      int b = (a >> 6) & 255;
      fout << b << endl;
  }
  return 0;
}  
Run Code Online (Sandbox Code Playgroud)

输入为多行,如下所示:

93859312
2635577168
2929619024
312396812
3019231016
3139200356
...
Run Code Online (Sandbox Code Playgroud)

while循环只迭代一次!! 和输出只包含

183
Run Code Online (Sandbox Code Playgroud)

这对应于第一个输入行.为什么???

c++ fstream visual-studio-2010

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

使用 bash 将十六进制转换为 uint64_t

是否可以使用 bash 脚本将十六进制字符串转换为 uint64_t(或 unsigned long long int)?号码是FFFFFFFF3D4331BC

bc命令似乎不适用于无符号数字?

bash

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

gnuplot条件绘图与if

我有两列的数据文件

10  0.5
20  0.8
25  0.3
15  0.6
Run Code Online (Sandbox Code Playgroud)

如果第一列小于或等于20,我想绘制第二列。问题是,我想跳过第一列大于20的行,但是gnuplot迫使我在条件部分中做一些事情。

该命令是

plot 'data.txt' u ($1<=20?$2:0) with points
Run Code Online (Sandbox Code Playgroud)

如您所见,我必须指定一个零点。我不要那个!我想跳过...

gnuplot

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

8086的RESET程序

8086和其他处理器的复位引脚将使CS:IP指向FFFF:0000,这是内存的最低16字节.在该位置,存在到存储器空间中的其他地方的跳转指令以初始化处理器.

我的问题是,为什么指向最后一节然后故意跳到其他地方?为什么处理器制造商不将CS:IP重置为0000:0000?然后,他们可以写一些初始指令,没有任何跳跃!!

这没有意义吗?

assembly x86-16

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

在程序集x86中使用CALL,RET

考虑其使用以下简单汇编代码push,popcall

CDSEG SEGMENT
MAIN PROC FAR
    ASSUME CS:CDSEG,DS:DTSEG
    MOV AX,DTSEG
    MOV DS,AX

    MOV AX,1010H        ; (1)
    PUSH AX             ; (2)
    CALL FOO            ; (3)
    ADD AX,2            ; (7)
MAIN ENDP   
FOO PROC   
    POP AX              ; (4)
    ADD AX,1            ; (5)
    RET                 ; (6)
FOO ENDP
END MAIN
Run Code Online (Sandbox Code Playgroud)

我期待的是,看到

(1) ax = 1010h, stack=????
(2) ax = 1010h, stack=1010h
(3) 
(4) ax = 1010h, stack=????
(5) ax = 1011h
(6)
(7) ax = 1012h
Run Code Online (Sandbox Code Playgroud)

但是,模拟器显示

(1) …
Run Code Online (Sandbox Code Playgroud)

x86 assembly

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

16 位 x 32 位的汇编乘法 =&gt; 48 位

假设我想在汇编中将一个大数乘以另一个(可能很小)的数。大数(被乘数)DX:AX保存在BX. 该MUL指令仅对 进行操作AX。那么该怎么办DX呢?

例如,数字是0001:0000H(65536),我想将其乘以 2。

number     dw   0000h, 0001h
...
mov    ax, [number]
mov    dx, [number+2]
mov    bx, 2
mul    bx   ; it is ax*2 or 0000*2
Run Code Online (Sandbox Code Playgroud)

所以结果为零!对此有什么想法吗?

assembly bigint extended-precision x86-16

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