mem_totol =26726124/1024/1024 python报错:cant multiply by non-int of type ‘float’
时间: 2024-02-05 15:12:57 浏览: 100
这个错误是因为`26726124/1024/1024`的结果是一个浮点数,而Python不支持将整数与浮点数相乘。要解决这个问题,你可以将结果转换为整数,使用`int()`函数,如下所示:
```
mem_total = int(26726124/1024/1024)
```
或者你也可以直接使用整数除法运算符`//`来避免这个问题,如下所示:
```
mem_total = 26726124 // 1024 // 1024
```
相关问题
mem_totol =26726124/1024/1024 python报错:cant multiply by non-int of type ‘float’ 想要保留小数点后一位
你需要将26726124除以1024.0再除以1024.0,这样可以将结果转换为浮点数,然后使用round函数保留小数点后一位。下面是示例代码:
```python
mem_total = round(26726124/1024.0/1024.0, 1)
print(mem_total)
```
输出结果应该是25.5,即保留一位小数的结果。
int mem[mem_page_num]; // 内存页面 int next_use[mem_page_num]; // 下一次被访问的时间 这两句报错 expected constant expression
这个错误是因为在 C 语言中,数组的大小必须是常量表达式,不能使用变量。在这种情况下,我们可以使用动态内存分配函数 `malloc` 来分配内存,以便能够在运行时根据变量的值动态地分配内存。
以下是修改后的代码:
```
int opt_missing_page_num(int* page_seq, int seq_len, int mem_page_num) {
int missing_page_num = 0; // 缺页次数
int *mem, *next_use; // 内存页面和下一次被访问的时间
int i, j, k, max_next_use, max_next_use_page;
mem = (int*)malloc(mem_page_num * sizeof(int));
next_use = (int*)malloc(mem_page_num * sizeof(int));
for (i = 0; i < mem_page_num; i++) {
mem[i] = -1;
next_use[i] = -1;
}
for (i = 0; i < seq_len; i++) {
// 如果页面已在内存中,则更新下一次被访问的时间
for (j = 0; j < mem_page_num; j++) {
if (mem[j] == page_seq[i]) {
for (k = i + 1; k < seq_len; k++) {
if (page_seq[k] == page_seq[i]) {
next_use[j] = k;
break;
}
}
break;
}
}
// 如果页面不在内存中,则进行页面置换
if (j == mem_page_num) {
missing_page_num++;
// 查找下一个要被访问的页面
max_next_use = -1;
max_next_use_page = -1;
for (j = 0; j < mem_page_num; j++) {
if (next_use[j] == -1) {
max_next_use_page = j;
break;
}
if (next_use[j] > max_next_use) {
max_next_use = next_use[j];
max_next_use_page = j;
}
}
// 置换页面
mem[max_next_use_page] = page_seq[i];
for (k = i + 1; k < seq_len; k++) {
if (page_seq[k] == page_seq[i]) {
next_use[max_next_use_page] = k;
break;
}
}
}
}
free(mem);
free(next_use);
return missing_page_num;
}
```
在这个修改后的代码中,我们使用了 `malloc` 函数来动态分配内存。在函数结束时,我们还需要使用 `free` 函数来释放内存。
阅读全文