标签: integer

将整数转换为字符串以在运行时创建输出文件名

我在Fortran中有一个程序将结果保存到文件中.目前我使用打开文件

OPEN (1, FILE = 'Output.TXT')
Run Code Online (Sandbox Code Playgroud)

不过,我现在想运行一个循环,每次迭代的结果保存到文件'Output1.TXT','Output2.TXT','Output3.TXT',等等.

在Fortran中有一种简单的方法可以从循环计数器构造文件名i吗?

string fortran integer

45
推荐指数
4
解决办法
12万
查看次数

为什么语言默认情况下不会在整数溢出上引发错误?

在几种现代编程语言(包括C++,Java和C#)中,该语言允许在运行时发生整数溢出,而不会引发任何类型的错误条件.

例如,考虑这个(人为的)C#方法,它没有考虑上溢/下溢的可能性.(为简洁起见,该方法也不处理指定列表为空引用的情况.)

//Returns the sum of the values in the specified list.
private static int sumList(List<int> list)
{
    int sum = 0;
    foreach (int listItem in list)
    {
        sum += listItem;
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

如果调用此方法如下:

List<int> list = new List<int>();
list.Add(2000000000);
list.Add(2000000000);
int sum = sumList(list);
Run Code Online (Sandbox Code Playgroud)

sumList()方法中将发生溢出(因为intC#中的类型是32位有符号整数,并且列表中值的总和超过了最大32位有符号整数的值).sum变量的值为-294967296(不是值4000000000); 这很可能不是sumList方法的(假设的)开发人员所期望的.

显然,开发人员可以使用各种技术来避免整数溢出的可能性,例如使用类似Java的类型BigInteger,或者使用C#中的checked关键字和/checked编译器开关.

但是,我感兴趣的问题是为什么这些语言默认设计为允许整数溢出首先发生,而不是例如在运行时执行操作时引发异常,从而导致溢出.看起来这种行为有助于避免在编写执行可能导致溢出的算术运算的代码时开发人员忽略解释溢出可能性的情况下的错误.(这些语言可能包含类似"未经检查"的关键字,它可以指定允许发生整数溢出而不会引发异常的块,在开发人员明确意图该行为的情况下; C#实际上确实有这个. )

答案简单归结为性能 - 语言设计者不希望他们各自的语言默认具有"慢"算术整数运算,其中运行时需要做额外的工作来检查是否发生溢出,在每个适用的算术上操作 - 这种性能考虑超过了在无意溢出发生时避免"无声"故障的价值?

除了性能考虑之外,还有其他原因可以做出这种语言设计决策吗?

language-agnostic integer language-design integer-overflow

43
推荐指数
6
解决办法
4335
查看次数

什么是代表电话号码的正确方法?

我在我的一个应用程序中代表手机号码时遇到问题.

我想知道是否有一个Integer类允许你存储从0417254482开始的这样一个数字.也许使用字符串更合适?目前,当我试图用一个代表一个带有整数的电话号码时,双打长,我似乎存储随机数而不是我打算存储的数字.

java integer phone-number

43
推荐指数
5
解决办法
8万
查看次数

Scala除以两个整数并获得浮点结果

如果我做以下事情

 println(3/4)
 >0
Run Code Online (Sandbox Code Playgroud)

我想得到一个十进制答案而不是一个整数.由于我在实际代码中打印的方式,如果可能,我宁愿在println中进行转换.

floating-point integer casting scala

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

Numpy整数南

有没有办法将NaN存储在Numpy整数数组中?我明白了:

a=np.array([1],dtype=long)
a[0]=np.nan

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
Run Code Online (Sandbox Code Playgroud)

python integer numpy nan

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

十六进制格式的无符号长整型打印

我想打印出unsigned long long这样的:

  printf("Hex add is: 0x%ux ", hexAdd);
Run Code Online (Sandbox Code Playgroud)

但我得到了类型转换错误,因为我有一个unsigned long long.

c printf integer

43
推荐指数
2
解决办法
8万
查看次数

我为什么不用*声明NSInteger

我正试着在iTunes U上从斯坦福大学开始学习iPhone课程,我对指针感到有些困惑.在第一次任务中,我尝试过做这样的事情

NSString *processName = [[NSProcessInfo processInfo] processName];
NSInteger *processID = [[NSProcessInfo processInfo] processIdentifier];
Run Code Online (Sandbox Code Playgroud)

这产生了一个错误,在盲目地修复之后,我发现它是导致问题的NSInteger系列中的*.

所以我显然不明白发生了什么.我将解释我认为它是如何工作的,也许有人会善意地指出这个缺陷.

与Web开发不同,我现在需要担心内存,而不是Web开发.因此,当我创建一个变量时,它会在某处分配一些内存(我假设是RAM).我没有传递变量,而是将指针传递给周围的内存.并且通过在变量名前加上*来声明指针.

假设我是对的,让我感到困惑的是为什么我不需要为NSInteger做那个?

cocoa pointers integer objective-c nsinteger

42
推荐指数
2
解决办法
3万
查看次数

在Python中用字符串和整数创建一个字符串

我尝试取一个整数并在其前面添加"b",将其转换为字符串时出现此错误:

  File "program.py", line 19, in getname
    name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
Run Code Online (Sandbox Code Playgroud)

这与此功能有关:

num = random.randint(1,25)
name = "b" + num
Run Code Online (Sandbox Code Playgroud)

python string random integer python-3.x

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

在C#中处理整数溢出的最佳方法是什么?

处理整数溢出是一项常见任务,但在C#中处理它的最佳方法是什么?是否有一些语法糖比其他语言更简单?或者这真的是最好的方式吗?

int x = foo();
int test = x * common;
if(test / common != x)
    Console.WriteLine("oh noes!");
else
    Console.WriteLine("safe!");
Run Code Online (Sandbox Code Playgroud)

.net c# integer overflow

42
推荐指数
5
解决办法
3万
查看次数

为什么Number.MAX_SAFE_INTEGER 9,007,199,254,740,991而不是9,007,199,254,740,992?

ECMAScript 6 Number.MAX_SAFE_INTEGER应该代表JavaScript在浮点精度出现问题之前可以存储的最大数值.但是,要求添加到此值的数字1也必须表示为a Number.

Number.MAX_SAFE_INTEGER

注意值Number.MAX_SAFE_INTEGER是最大的整数n,n并且n + 1可以完全表示为Number值.

价值Number.MAX_SAFE_INTEGER是9007199254740991 (2^53?1).

- ECMAScript语言规范

Chrome,Firefox,Opera和IE11的JavaScript控制台都可以安全地执行9,007,199,254,740,992的计算.一些测试:

// Valid
Math.pow(2, 53)                         // 9007199254740992
9007199254740991 + 1                    // 9007199254740992
9007199254740992 - 1                    // 9007199254740991
9007199254740992 / 2                    // 4503599627370496
4503599627370496 * 2                    // 9007199254740992
parseInt('20000000000000', 16)          // 9007199254740992
parseInt('80000000000', 32)             // 9007199254740992
9007199254740992 - 9007199254740992     // 0
9007199254740992 == 9007199254740991    // false
9007199254740992 == 9007199254740992    // true

// Erroneous …
Run Code Online (Sandbox Code Playgroud)

javascript integer ieee-754 ecmascript-6

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