这段bash代码在存在许多文件夹时没有显示文件夹名称.
#!/bin/bash
for file in .; do
if [ -d $file ]; then
echo $file
fi
done
Run Code Online (Sandbox Code Playgroud)
只有输出才能.
解释原因吗?
我想证明这样的输出文本
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) 我在我的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) 我有一个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)
似乎它无法转换string为char *.此外,铸造不起作用
一个非常简单的程序:逐行读取文件(每行包含整数)然后执行某些操作并将输出写入文件.
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)
这对应于第一个输入行.为什么???
是否可以使用 bash 脚本将十六进制字符串转换为 uint64_t(或 unsigned long long int)?号码是FFFFFFFF3D4331BC?
该bc命令似乎不适用于无符号数字?
我有两列的数据文件
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)
如您所见,我必须指定一个零点。我不要那个!我想跳过...
8086和其他处理器的复位引脚将使CS:IP指向FFFF:0000,这是内存的最低16字节.在该位置,存在到存储器空间中的其他地方的跳转指令以初始化处理器.
我的问题是,为什么指向最后一节然后故意跳到其他地方?为什么处理器制造商不将CS:IP重置为0000:0000?然后,他们可以写一些初始指令,没有任何跳跃!!
这没有意义吗?
考虑其使用以下简单汇编代码push,pop和call
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) 假设我想在汇编中将一个大数乘以另一个(可能很小)的数。大数(被乘数)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)
所以结果为零!对此有什么想法吗?