标签: integer

从整数到浮点数的转换是如何进行的?

每种编程语言都有自己的方法将整数转换为浮点数,将 01010 转换为其他 01010。如果您看到 ASM 生成的代码,它使用协处理器指令向用户隐藏真实值。

但实际情况如何呢?如何通过算法计算尾数、指数?

floating-point assembly integer

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

Delphi:"不兼容的类型整数和扩展"

我目前面临的问题是无法将ClientWidth除以2(或乘以0.5,因为Delphi给出的错误信息:

[Error] Unit1.pas(59): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(60): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(61): Incompatible types: 'Integer' and 'Extended'

procedure TForm1.FormResize(Sender: TObject);
begin
 // responsive design
 with form1 do begin
 cmdFakultat.left:=0.5*ClientWidth-60;
 txtEingabe.left:=0.5*ClientWidth-60;
 lblAusgabe.left:=0.5*ClientWidth-60;
 end;
end;

end.
Run Code Online (Sandbox Code Playgroud)

delphi pascal integer delphi-7 incompatibletypeerror

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

HashMap containsKey为Integer返回false

我有这个简单的代码,我发现对于最后一个数组,containsKey方法返回总是false.

int[] indices = new int[] { 1, 3, 5, 7, 9 };

Map<Integer, Integer> seen = new HashMap<>();

for (int i = 0; i < indices.length - 1; i++) {
    seen.put(indices[i], i);
}
Run Code Online (Sandbox Code Playgroud)

除了以下所有其他都是

System.out.println("!!!!! " + seen.containsKey(9) );
Run Code Online (Sandbox Code Playgroud)

还有新的

int[] { 1, 3, 5, 7 };
Run Code Online (Sandbox Code Playgroud)

除了以下所有其他都是

System.out.println("!!!!! " + seen.containsKey(7) );
Run Code Online (Sandbox Code Playgroud)

这背后的逻辑是什么?

java integer hashmap containskey

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

为什么这个递归有效?

我对此递归感到有点困惑:

def count(num):
    if num == 0:
        print('Go!',end=' ')
    else:
        count(num-1)
        print(num,end=' ')
count(5)
Run Code Online (Sandbox Code Playgroud)

为什么这样做?打印"Go!"后程序不应该停止执行吗?

当我在python可视化工具中运行它时,打印出"Go!" 执行跳转到不应该发生的else语句...

例如,它打印"Go!1 2 3 4 5"但我希望它打印"Go!"

python recursion logic integer function

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

为什么GCC没有为int division生成正确的汇编代码?

我写了以下C代码.但是在运行时它给了我不正确的变量值sb,所以我尝试用GDB调试它,我发现int division E(vdes->addr, bs)(#define E(X,Y) X/Y)的汇编代码是完全不可理解的,似乎没有做正确的事情.

文件:main.c

typedef struct virtual_file_descriptor
{
    int     dfb;
    int     addr;

} vfd;

vfd vdes;

if(!strcmp(argv[1], "write")){
        vdes.dfb = atoi(argv[2]);
        vdes.addr = atoi(argv[3]);
        vwrite(&vdes, inbuffer, atoi(argv[4]));
    }
Run Code Online (Sandbox Code Playgroud)

文件:vwrite.c

#define E(X,Y)  X/Y
#define bs      sizeof(D_Record)*MAX_BLOCK_ENTRIES

int vwrite(vfd *vdes, char *buffer, int size){
    if(!vdes)
        return -1;

    int sb, nb, offset;

    sb      = E(vdes->addr, bs) + 1;     // i did 140/280 => wrong result
    offset  = vdes->addr - (sb - 1) * bs;

    printf("size=%d …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc integer

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

为什么对于有符号整数,i*= 2似乎收敛为0?

请考虑以下代码:

#include <iostream>
int main(int argc, char* argv[])
{
    int i = /* something */;
    for (std::size_t n = 0; n < 100; ++n) {
        i *= 2;
        std::cout << i << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

对有符号整数进行溢出是未定义的行为.但是,我不明白为什么这段代码似乎总是以0结尾.任何解释?

c++ integer integer-overflow

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

将字符串列表转换为一个整数

我有一个像这样的列表:

 ["1", "8", "9", "5", "6"]
Run Code Online (Sandbox Code Playgroud)

并希望将其转换为单个整数.所以期望的输出是这样的:18956

有一个优雅的方法来做到这一点?

进入我脑海的唯一方法是通过列表并将数字乘以所需的10的幂并将所有数据相加.但我相信有更好的方法,不是吗?谢谢你的帮助.

python string integer list

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

c ++ - 具有非常大的数字的算术运算

我需要编写一个执行算术运算的程序但我必须用非常大的数字来做,例如 2837456897658923563425345 + 23784623874623874682736478236

因为数字本身太大,我把它们作为一个字符串我就是不知道如何做简单的事情,比如加法和减法,当我不能将这些数字移动到变量时,因为它们太大了

c++ integer

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

Integer.valueOf 针对一个字符返回 ASCII

Integer.valueOf接受Stringint作为参数但是当我通过时Character,它不需要强制转换并且编译器不强制执行任何操作。

字符不扩展String类,它只是实现SerializableComparable

Character charc = '1';
System.out.println(Integer.valueOf(charc));
System.out.println(Integer.valueOf(charc.toString()));
Run Code Online (Sandbox Code Playgroud)

输出:

49
1
Run Code Online (Sandbox Code Playgroud)

这不是设计缺陷还是我在错误的方向思考?当您拒绝投票时,请在评论中写下原因。

在此处输入图片说明

java integer character

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

Java循环垂直

我的代码基本上将数字排列成相反的顺序,例如 415 程序会将它排列成 514 我的代码是正确的,但我有一个问题,输出应该是垂直的。

expected output
5
1
4
Run Code Online (Sandbox Code Playgroud)
import java.util.Scanner;
public class Main{
  public static void main(String args[])
  {
    Scanner in = new Scanner(System.in);
    int num = in.nextInt();
    int rev=0;
    while( num != 0 )
      {
          rev = rev * 10;
          rev = rev + num%10;
          num = num/10;
      }
          System.out.println(rev);
  }
}
Run Code Online (Sandbox Code Playgroud)

java integer loops do-while java.util.scanner

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