小编Ock*_*ham的帖子

程序计数器?

如果我理解正确,程序计数器指向要执行的指令的地址,并且在大多数情况下,您向程序计数器添加四个以前进到下一个指令地址.但是说你有一个程序计数器指向内存中的一个单词(例如单词15)并且你想要前进到下一条指令,你是否想要直接将4加到15以获得下一条指令?任何解释将不胜感激

cpu assembly mips cpu-architecture cpu-registers

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

头文件中的空类声明?

可能重复:
c ++中的前向声明是什么?

我只是对这段代码在这个简单的例子中做了什么有疑问.我查找了朋友类并了解它们是如何工作的,但我不明白顶层的类声明实际上在做什么(即机器人).这是否意味着Happy类可以使用Robot对象,但是它们无法访问其私有部分,任何信息都将被欣赏.

#include <stdlib.h>
#include <stdexcept>

template <typename T>   // What is this called when included 
class Robot;            // is there a special name for defining a class in this way

template <typename T>
class Happy
{ 
  friend class Joe<T>;  
  friend class Robot<Happy<T> >;
  // ...
};
Run Code Online (Sandbox Code Playgroud)

c++ class header-files

4
推荐指数
1
解决办法
4552
查看次数

在std :: cout之后使用std :: cin时,换行符来自哪里?

请考虑以下简单示例

#include <iostream> 

int main() 
{
    using namespace std;
    char name[30];        

    cout << "What is your first name: ";
    cin >> name;
    cout << "Hello " << name << endl;

    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

该程序的示例输出如下:

What is your first name: Bob
Hello Bob
Run Code Online (Sandbox Code Playgroud)

这个程序按预期工作,但我不明白输出流如何知道转到下一行.我基本上考虑了两个独立的信息流,并且对输出流如何知道转到下一个信息感到困惑,因为它后面跟着输入.换行符来自哪里?

c++

4
推荐指数
1
解决办法
874
查看次数

多级缓存性能

我有点困在两个问题上.我将包括问题的相关细节,任何指导将不胜感激.如果可以,请给出解释.

假设对于具有多种不同内存层次结构选择的处理器,您有以下统计信息.

Base CPI = 1.5 
Processor Speed = 2 GHZ
Main Memory Access Time = 100ns
L1 miss rate per instruction = 7%
L2 direct mapped access = 12 cycles 
Global miss rate with L2 direct mapped = 3.5%
L2 8-way set associative access = 28 cycles 
Global miss rate with L2 8-way set associative access = 1.5%    
Run Code Online (Sandbox Code Playgroud)

注意:全局未命中率是在所有级别的缓存中丢失的引用的百分比(因此必须访问主内存)

  1. 如果L2缓存可用且直接映射,则计算总CPI.

  2. 如果L2可用并且是8路组关联,则计算总CPI.

architecture cpu organization cpu-architecture

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

Haskell做关键字

所以我一直在努力解决过去几个小时打印数独游戏板的问题,我差不多完成了但是我已经陷入了最后一步.所以我所拥有的是一个数据板,表示为"列表列表"(即板= [[1,3,5,7,0,2,0,0,0],[3,4,5,... .],...]

我已经能够使用以下功能打印出具有格式的行:

line i s_board = intercalate " | " . map unwords . chunksOf 3 $ map show a
             where 
               a = s_board!!i 
Run Code Online (Sandbox Code Playgroud)

所以通过像"0行板"那样打电话,我会得到"1 3 5 | 7 0 2 | 0 0 0"这部分是我需要的.接下来我尝试使用"do block"输出我需要的板,看起来像这样:

print = do line 0 board 
        line 1 board 
        ...
Run Code Online (Sandbox Code Playgroud)

这甚至不会编译,当我做这样的事情时:

print = do 
        line 0 board 
        line 1 board
Run Code Online (Sandbox Code Playgroud)

适当的列表被多次打印,这是相当混乱的.我想继续努力,包括额外的格式化,比如在每三行之后打印一个字符串,例如"----------",以完成电路板,但我甚至无法让其他东西工作对了.我很感激对这些问题的任何帮助.

haskell

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

递归回溯Haskell

好吧所以我试图在Haskell中创建一个Sudoku Solver,但是我收到一个错误,说我无法将预期的类型[[Int]]与实际类型IO()相匹配.这是我对递归求解器,错误消息和其他相关代码片段的尝试:

递归求解器尝试:

test i j q s_board = if ((valid_row i q s_board )&&(valid_column j q s_board)&&  (valid_sub_board i j q s_board)) then (solve (set_value i j q s_board)) else s_board

foo i j s_board = if ((get_value i j s_board) == 0) then [test i j q s_board | q <- [1..9]] else s_board  

solve s_board = if (full_board s_board) then (print_board s_board) else [foo i j s_board | i <- [0..8], j <- [0..8]]
Run Code Online (Sandbox Code Playgroud)

如果我包含有效列,行等功能的所有定义,这个问题将会非常长,但我已经检查过以确保这些工作正常.使用此代码我收到以下错误消息:

 Couldn't match …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell使用一些格式打印列表

几天前刚刚开始学习Haskell,我遇到了一些问题.第一个问题涉及打印数字列表.期望的行为如下:

输入:[1,2,3,4,5,6]

输出:1 2 3 | 4 5 6

所以它是一个简单的概念,我只需要用"|"输出列表的元素 在每三个数字之间插入符号,但我不能为我的生活弄明白.似乎我尝试过的大多数东西都涉及到字符串,即使我能够将列表添加到字符串中,如["1","2","3",......]我所有的方法尝试在各自的行上打印数字,这不是我需要的.

任何帮助将不胜感激.

haskell

0
推荐指数
1
解决办法
1246
查看次数