每种编程语言都有自己的方法将整数转换为浮点数,将 01010 转换为其他 01010。如果您看到 ASM 生成的代码,它使用协处理器指令向用户隐藏真实值。
但实际情况如何呢?如何通过算法计算尾数、指数?
我目前面临的问题是无法将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) 我有这个简单的代码,我发现对于最后一个数组,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)
这背后的逻辑是什么?
我对此递归感到有点困惑:
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!"
我写了以下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) 请考虑以下代码:
#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结尾.任何解释?
我有一个像这样的列表:
["1", "8", "9", "5", "6"]
Run Code Online (Sandbox Code Playgroud)
并希望将其转换为单个整数.所以期望的输出是这样的:18956
有一个优雅的方法来做到这一点?
进入我脑海的唯一方法是通过列表并将数字乘以所需的10的幂并将所有数据相加.但我相信有更好的方法,不是吗?谢谢你的帮助.
我需要编写一个执行算术运算的程序但我必须用非常大的数字来做,例如 2837456897658923563425345 + 23784623874623874682736478236
因为数字本身太大,我把它们作为一个字符串我就是不知道如何做简单的事情,比如加法和减法,当我不能将这些数字移动到变量时,因为它们太大了
Integer.valueOf接受String和int作为参数但是当我通过时Character,它不需要强制转换并且编译器不强制执行任何操作。
字符不扩展String类,它只是实现Serializable和Comparable
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)
这不是设计缺陷还是我在错误的方向思考?当您拒绝投票时,请在评论中写下原因。
我的代码基本上将数字排列成相反的顺序,例如 415 程序会将它排列成 514 我的代码是正确的,但我有一个问题,输出应该是垂直的。
Run Code Online (Sandbox Code Playgroud)expected output 5 1 4
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)