小编Ben*_* I.的帖子

数组返回可用于赋值,但不能用于循环

当我遇到一个小小的谜时,我正在回答一个不同的问题.类定义(稍微修改自原始提问者)在这里:

public class Playground<T>{
    private int pos;
    private final int size;
    private T[] arrayOfItems;
    public Playground(int size){
        this.size = size;
        pos = 0;
        arrayOfItems = (T[]) new Object[size];
    }

    public void addItem(T item) {
        arrayOfItems[pos] = item;
        pos++;
    }

    public void displayItems() {
        for(int i = 0;i<pos;i++){
            System.out.println(arrayOfItems[i]);
        }
    }

    public T[] returnItems() { 
        return (T[]) arrayOfItems;
    }
}
Run Code Online (Sandbox Code Playgroud)

主要是,然后我们创建一个新的Playground,Playground<String> animals = new Playground<String>(5);并在其中放入一些动物字符串.(狗,猫等).

神秘之处在于:

Object[] s = animals.returnItems();
for(int i=0; i < s.length; i++) { …
Run Code Online (Sandbox Code Playgroud)

java arrays generics class

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

在Excel中使用10位以外的带符号数字

我是否有某些方法可以在Excel中丢失以设置二进制数中的真实位数,或者我们是否坚持使用10位DEC2BIN和BIN2DEC?10位是一个奇怪的选择.

理想情况下,我希望能够在真正签名的8位或真正签名的16位世界中进行选择,并且能够使用这些数字执行操作.就像现在一样,我不能将11111111设置为-1而不是255.还有其他人处理过这个吗?

提前致谢.

binary excel excel-formula

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

Excel换行符(char(10))复制/粘贴问题

我正在尝试使用CHAR(10)为我生成的某些脚本创建一些很好的格式,但复制和粘贴对我来说不起作用.我正在运行Windows 8.1 atm.这是一个澄清的例子.使用公式:

="hello"&CHAR(10)&"world"
Run Code Online (Sandbox Code Playgroud)

我进入hello[newline]worldExcel.我希望复制/粘贴到记事本中

hello
world
Run Code Online (Sandbox Code Playgroud)

但是当我实际执行复制/粘贴时,我会得到:

helloworld
Run Code Online (Sandbox Code Playgroud)

现在,我知道换行符就在那里,因为如果我将记事本中的输出复制到这个窗口,我会重新插入换行符.我最终需要从Excel中删除带有(可见)换行符的明文.我有什么想法可以做到这一点?

excel ascii plaintext

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

Java中一些有趣的反射代码

我希望我写这篇文章,但我只是遇到过它.它有一行代码可以读取System.out.println("meep");并打印,令人抓狂Nutn.

import java.lang.reflect.*;
import java.util.*;

public class SomethingFun {
  public static void main(String[] args) throws java.lang.Exception {
    doSomething("meep");
    System.out.println("meep");
  }

  public static void doSomething(String s) throws java.lang.Exception {
    Field privateStringField = String.class.getDeclaredField("value");
    privateStringField.setAccessible(true);
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);

    // This line is where the trouble is:
    modifiersField.setInt(privateStringField, privateStringField.getModifiers() & ~Modifier.FINAL);

    privateStringField.set(s, new char[] {'N', 'u', 't', 'n'});
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经收集了一些关于反思课程的内容 - 我怀疑它是以某种方式搞乱实习.有人能否了解这里发生的事情?

特别是,这条线 modifiersField.setInt(privateStringField, privateStringField.getModifiers() & ~Modifier.FINAL); 是如此令人困惑.

java reflection

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

状态寄存器何时在6502中更新?

我目前正在LogiSim中开发6502的子集.我的主要资源之一是Hanson的Block Diagram.

我正在尝试确定如何以及在何处构建更新处理器状态寄存器的电路.在下面的处理器状态寄存器图中,有多条控制线进入寄存器,但没有指示它们来自何处.

令人困惑的图表部分

6502处理器状态寄存器何时何地更新?我认为它是在ALU的输出上,但我想确保这种情况.

processor 6502

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

无法弄清楚如何在MASM32中打印数字

我讨厌问这些基本问题.它让我看起来像是在懒惰!但是我花了好几个小时查看文档,无论出于何种原因,我无法直接在这个小点上旋转.

我想在屏幕上打印字符"4".我可以将其作为字符串,但不是来自ascii值.

这是工作代码:

include c:\masm32\include\masm32rt.inc
.data
    num4 db "4", 10,0
.code
start:
    invoke StdOut, addr num4
    inkey
    invoke ExitProcess, 0
end start
Run Code Online (Sandbox Code Playgroud)

我只想从那里迈出一步,打印ascii字符52(即"4").到目前为止,这是我最好的尝试:

include c:\masm32\include\masm32rt.inc
.data
.code
start:
    myvar db 52
    invoke StdOut, myvar
    inkey
    invoke ExitProcess, 0
end start
Run Code Online (Sandbox Code Playgroud)

它无故障地组装和链接,但是当我运行它时会崩溃.我知道它最后没有0个字符,但是invoke StdOut, myvar,0StdOut的参数太多了.

我最终的目标是能够打印多位数字,如Alexey Frunze所述:

x86 assembly(masm32) - 如何将多位数据拆分为单个字符

但是由于我在语法方面遇到了很多麻烦,我正在采取措施.我找到了这个,但它没有解释如何在语法上添加48部分:

x86程序集 - 如何显示整数2,而不是第二个ASCII字符

请帮我翻过这些开场障碍,谢谢!

syntax assembly masm32

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