小编Dex*_*ter的帖子

如何找到给定范围内的值可以被给定值整除?

我有三个数字x,y,z.

对于数字x和y之间的范围.

如何找到%与z为0的总数,即x和y之间的数字可被z整除?

algorithm math

21
推荐指数
6
解决办法
3万
查看次数

QEMU - 代码流[指令缓存和TCG]

我正在尝试分析QEMU源代码.

我知道它很庞大,直到约会还没有官方文件.

我主要关注的是指令缓存管理和TCG操作.

任何指向它们的指针都会有所帮助吗?

qemu

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

从double转换为unsigned int

我正面临将值从Double转换为int的问题.我尝试运行以下代码:

int main()
{
    double val_d= 6.25e-05;
    cout << (1/val_d) << endl;
    unsigned int val_ui = (unsigned int ) (1/val_d);
    cout << val_ui << endl;
}
Run Code Online (Sandbox Code Playgroud)

从double转换为int可能会删除小数部分,但整数部分应保持不变?

我得到的输出是:16000 15999

那么为什么这里的o/p有所不同?这只发生在fedora上.在Windows和Ubuntu上它工作正常.(两个输出都是16000)

我调整了上面的代码,得到了以下结果:

int main()
{
  double val_d= 6.25e-05;
  cout << (1/val_d) << endl;
  double val_intermediate =  (1/val_d) ;
  cout << val_intermediate << endl;
  unsigned int val_ui = (unsigned int ) val_intermediate;
  cout << val_ui << endl;

}
Run Code Online (Sandbox Code Playgroud)

NEW OUTPUT是16000 16000 16000

c++ math floating-point

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

gcc - 如何查找包含文件的路径

我们在gcc中有任何选项可以找到包含特定文件头的位置.我有以下场景:

file_1.h:声明type_1类型

file_2.h:

type_1 var;

我想检查我正在创建的库中包含的file_1.h的位置.

c++ linux gcc g++ gcc-warning

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

从 python 脚本在共享库上运行 gcov

我面临着从 python 脚本在共享库上运行 gcov 的问题。

我在构建库时遇到以下情况:

  1. 将一组文件(file1.c、file2.c)编译为静态链接的 lib(.a)。我使用 ar 实用程序来执行此操作,并且所有文件都使用以下选项进行编译:

    -静态-fprofile-arcs -ftest-覆盖率-覆盖率

  2. 使用其他一些文件(例如 file3.c)和上面指定的 .a 文件构建 .so 文件。我在编译和链接时再次使用相同的选项。

  3. 在python脚本中加载.so并执行。

问题:生成的覆盖率文件仅包含 file3.c 的代码覆盖率。属于 .a 库一部分的文件不会显示在覆盖率报告中。

我在此处链接 .a 时是否缺少任何选项?

c python linux shared-libraries

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

发生溢出时比较运算符如何工作

我有以下代码:

int main() {
   int64_t val1 = 0x8000000000000000;
   int64_t val2 = 0x1c11223344556677;
   if(val1 > val2) {
      std::cout << "Val1 is greater than val2"<< std::endl;
   }
   else {
      std::cout << "Val2 is greater than val1"<< std::endl;
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

获取代码其他部分的打印内容。

我想知道比较运算符如何处理,或者如果其中一个值超过最大值,那么任何算术运算如何工作?

c c++

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

'=='运算符在python中无法正常工作

以下代码在我的脚本中表现不正确:

from ctypes import *
base_addr = c_uint64(0)
base_addr_temp = c_uint64(0)
print base_addr
print base_addr_temp
if(base_addr == base_addr_temp):
    print "val"
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

c_ulong(0L)

c_ulong(0L)

我使用的是python 2.7.3版本.

python python-2.7

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

C++:删除不同的静态和动态指针类型

我有一段愚蠢的代码,我需要一些解释.

int main() {
   int *ptr_i = new int[100];
   char *ptr_c = (char *)ptr_i;
   delete [] ptr_c;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

首先,我期待这段代码崩溃,但我认为并不是因为在这种情况下分配器将跟踪要分配多少字节.我也在这段代码上运行了valgrind,它没有显示内存泄漏.我需要澄清以下事项:

  1. 在处理POD数据类型的情况下,char的c'tor与int的c'tor有何不同?

  2. 除了编码约定,这段代码还会带来哪些其他问题?

c++

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

_snprintf_s中的错误

我用_snprintf_s得到了这个奇怪的错误:

int ival = strlen("F(LL)L");
char buff[32];
memset(buff,0,sizeof(buff));
_snprintf_s(buff,strlen("F(LL)L"),_TRUNCATE,"%s","F(LL)L");
Run Code Online (Sandbox Code Playgroud)

在buff中只"F(LL)"复制即使字符串长度计算为6.如果我指定长度参数,strlen("F(LL)L") + 1则复制完整字符串.

c++ msvcrt visual-c++

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

MAC 地址上的网络字节顺序

我正在编写一个代码,该代码要求我解析以 uint8_t * 指针形式接收的传入帧。

我编写了一个实用方法来从帧中获取 mac 地址并将其转换为 uint64_t 值以便于计算。

uint64_t addr = uint64_t(_frm_ptr[0]) << 40 | uint64_t(_frm_ptr[1]) << 32 | 
                       uint64_t(_frm_ptr[2]) << 24 | uint64_t(_frm_ptr[3]) << 16 | 
                       uint64_t(_frm_ptr[4]) << 8 | uint64_t(_frm_ptr[5]);
Run Code Online (Sandbox Code Playgroud)

我需要知道,如果源 mac 地址是大端格式的“b8:ac:6f:c0:3d:25”,它会以相同的顺序传输吗?

mac地址如何在网络上传输?

上面的代码片段是否适用于所有平台?

c sockets networking mac-address

0
推荐指数
2
解决办法
7458
查看次数

避免双精度损失

我有以下代码:

func(double val) {
   // I am trying with the following values. both of which are in the range as per  
   // IEEE 754 std.
   // val = 1.847474
   int temp = [some_val = (1 << 23)];
   double temp2 = val * temp;
   printf("the produt111a = %15f\n",temp2);
}
Run Code Online (Sandbox Code Playgroud)

值会temp2导致精度损失。

val但是,如果我在进行乘法时直接替换 的值,我会得到正确的结果。

在这种情况下可以采取什么措施来避免精度损失?

c math

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

使用C++的函数指针出错

为什么以下代码会导致错误:

class A {

public:
        typedef void (A::*funptr)(void);

        void fun(void ) {
                cout << " Fun Call " <<endl;
        }

        void foo(void ) {
                cout << " Foo Call " <<endl;
        }

        funptr p[2];
        funptr q;

        A()
        {
                p[0]=&A::foo;
                p[1]=&A::fun;
                q   =&A::fun;
        }
};


int main ()
{

A obj;

(obj.*q)(void);

//(obj.p[0])();
//(obj.p[1])();

return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

在基类方法中访问派生类成员

我有一个特殊的要求,但无法找到解决方案.

class Base
{
public:
    void func()
    {
       //access the member say 'var' of derived class
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 在我们的例子中强制要求所有来自base的派生类都有成员'var'.
  2. 派生类的名称可以是任何名称.

c++ inheritance class base-class derived-class

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