相关疑难解决方法(0)

c/c ++中类型的大小

我最近在这里问了一个关于尺寸的问题char.看着我的问题,它给我带来了另一个问题:
有些事情就像位数的charsizeof(int)依赖CPU,OS依赖,依赖于编译器,或上述的某种组合?谁决定sizeof(int)我的编译器是4?

编辑:让我解释一下:例如,我在64位系统上的编译器使用32位int.编译器或操作系统是否将此设置为此(精确)OS /平台组合上所有编译器的标准int?如何char= 8位?OS可以决定使用16位字符吗?可以编译吗?

c c++ sizeof

6
推荐指数
2
解决办法
395
查看次数

16 字节长的整数类型

我正在 64 位上使用 GCC 编译 C++ 程序 - machine/OS/(带有-m64传递给 的选项g++)。正如预期的那样,sizeof(long double) == 16– 我想知道是否有 16 字节长的整数标准类型?

PS__int128_t是一种人工扩展,它模拟我所理解的标准类型。除此之外我什么也没找到。

c++ 64-bit types

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

MPI数据类型有什么好处?

MPI基本数据类型对应于主机语言的数据类型,MPI_BYTE和MPI_PACKED除外.我的问题是使用这些MPI基本数据类型有什么好处?或者等效地,为什么仅使用主机语言数据类型是不好的?

我阅读了William Gropp等人的教程.在幻灯片31"为什么是数据类型"中,它说:

  • 由于所有数据都按类型标记,因此MPI实现可以支持具有非常不同的内存表示和基本数据类型长度(异构通信)的计算机上的进程之间的通信.
  • 在内存中指定面向应用程序的数据布局
    • 减少实现中的内存到内存副本
    • 允许在可用时使用特殊硬件(分散/聚集)

(http://www.mcs.anl.gov/research/projects/mpi/tutorial/mpiintro/ppframe.htm)

我没有理解这个解释.首先,如果基本数据类型不同,我不明白为什么使用MPI数据类型可以解决差异,因为基本MPI数据类型对应于主机语言的基本数据类型(基本数据类型).其次,为什么这种面向应用的内存数据布局有两个好处?

任何解答我原始问题的答案都将被接受.任何答案都可以解决我的问题,威廉格罗普的解释也将被接受.

types mpi

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

在Cython中使用类型化的内存视图返回numpy友好数组的正确方法?

我试图使用Cython内存视图而不创建或使用numpy数组,所以我从来不必编译numpy,但我想返回Python端可以"转换"为numpy数组的东西.例如,我有这个函数,它接受一个2D数组并返回一个新的1d数组:

cimport cython
from cython.view cimport array as cvarray

cpdef int[:] myfunc(int[:,:] input_arr, int arr_len):
   cdef int i
   # allocate new int array
   cdef int[:] new_arr = cvarray(shape=(arr_len,), itemsize=sizeof(int), format="i") 
   for i in xrange(arr_len):
      if input_arr[i, 0] == 1:
         new_arr[i] = 0
      else:
         new_arr[i] = 1
   return new_arr
Run Code Online (Sandbox Code Playgroud)

现在从Python我实际上想要将一个numpy数组传递给该函数并将结果视为一个numpy数组:

# From Python
import numpy as np
data = np.array([[0,0,0],[1,0,1]], dtype=np.dtype("i"))
result = myfunc(data, data.shape[0])
# How do I make 'result' accessible as numpy array here??
# ...
result …
Run Code Online (Sandbox Code Playgroud)

c arrays numpy cython

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

**符号**正整数的一元减运算符何时导致溢出?

通常,INT_MIN-2 ^ nINT_MAX2 ^ n - 1

是否保证,如果x数型,int那么expressoin -x不会导致溢出?

c++

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

简单的C问题

我出生在现代世界,所以我不经常需要处理这类事情,但有人可以解释如何在以下代码中获得正确的数字.这是许多人的一次尝试:

#define     X   2527
#define     Y   2463
#define     Z   3072

main()
{
long int c = X*Y*Z;
printf("%ld",c);
}
Run Code Online (Sandbox Code Playgroud)

我只是想打印一个长整数,但它总是打印错误的结果.我得到整数溢出 - 如果是这样我怎么能防止它们?或者它是我选择的printf格式化程序?

c

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

从控制台将MongoDB字段的类型更改为整数

我们有一个应用程序可以在MongoDB中存储来自C/C++的一些配置值,并且具有重新启动的能力(即它运行一段时间,有人中断应用程序,更改配置,然后再次运行应用程序,然后它在它离开了).这就像布尔和字符串配置的魅力.

但是我们有一些整数(在我们当前的C/C++实现中 - 32位值).当我使用MongoDB控制台修改这些整数值时,Mongo总是将它们存储为Number(在C/C++实现中是可靠的).我们将更改应用程序以获取期望整数的双值,但我想知道是否有办法迫使Mongo从其JavaScript控制台存储整数.

有什么建议?

javascript c++ mongodb

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

php是否支持64位ieee浮点数

我对这个话题进行了深入的研究.但这个问题并不清楚.任何人都可以帮我解决这个问题. http://www.php.net/manual/en/language.types.float.php 这个链接没有正确描述.

php

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

pack('i',1)总是4个字节吗?

在我的机器PHP_INT_SIZE8,pack('i',1)无论如何返回一个4字节的字符串.

文档i是一个"有符号整数(机器相关的大小和字节顺序)",但似乎并非如此.它固定为4个字节?

这意味着unpack('i',pack('i',PHP_INT_MAX))[1] !== PHP_INT_MAX在64位计算机上,因为一半的数据被删除了.

php pack

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

这个litle程序如何工作?

我试图检查关于C++的QA练习,一个问题让我抓狂!

typedef struct {
    unsigned int i : 1;
} myStruct;

int main()
{
    myStruct s;
    s.i = 1;
    s.i++;
    cout << s.i;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是什么是输出:0/1/2/3/-1 /段错误?

我确实检查了2这是一个错误的答案:D,那么为什么程序显示为0

c++ struct bit-fields

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

标签 统计

c++ ×5

c ×3

php ×2

types ×2

64-bit ×1

arrays ×1

bit-fields ×1

cython ×1

javascript ×1

mongodb ×1

mpi ×1

numpy ×1

pack ×1

sizeof ×1

struct ×1