我想知道如何通过仅使用bitshift或bitwise运算符将整数与另一个整数(均为正)相除来获得余数.该/经营者或%经营者不得使用.
例如,为了在除数为形式时获得余数2^k,以下操作产生余数.
m = Remainder
n = The number
d = The divisor
m = n & ( d - 1 )
但是,此方法仅在d表单形式时有效2^k.我想知道类似的非权力方法2.我目前正在研究一个问题,programming challenges并希望采用这种方法来减少程序执行时间
我正在测试一些C代码并遇到了这个奇怪的编译器错误
以下代码无法编译
#include<stdio.h>
void main()
{
int length=6;
__asm
{
mov eax,length
}
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio报告以下错误
test.c(7) : error C2400: inline assembler syntax error in 'second operand';
found 'newline'
Run Code Online (Sandbox Code Playgroud)
但是,我注意到如果我将变量的名称更改为其他内容,lengths那么一切都很好,下面的代码编译没有任何困难
#include<stdio.h>
void main()
{
int lengths=6;
__asm
{
mov eax,lengths
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用Digital Mars和Intel Compiler等其他编译器,但无法编译第一个代码.
可能是什么问题?length其他地方是否有其他定义.
我还想补充一点,这是一个单独的文件,而不是一个项目,所以不能有任何多个声明.
假设我有一个名为的文本文件:data.txt(包含2000行)
如何读取给定的特定行:500-1500然后1500-2000并显示特定行的输出?
此代码将读取整个文件(2000行)
public static String getContents(File aFile) {
StringBuffer contents = new StringBuffer();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
contents.append(System.getProperty("line.separator"));
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}
return contents.toString();
}
Run Code Online (Sandbox Code Playgroud)
如何修改上面的代码以读取特定的行?
我已经下载了ADT软件包(昨天),解压缩它,打开Eclipse并按照http://developer.android.com/sdk/installing/bundle.html上的说明进行设置.然后,我按照http://developer.android.com/training/basics/firstapp/index.html上的说明进行构建第一个应用程序.每次 - 我已经尝试了两天,每次几个小时 - 我点击"完成"后得到相同的错误.
构建期间发生错误.项目"测试"上运行构建器"Android资源管理器"的错误.显示java.lang.NullPointerException
我检查并仔细检查所有文件夹是否正确放置.我已接受所有默认设置.我没有改变任何东西,只是遵循指示.
我在Macbook Pro OSX 10.8.4上.使用ADT Build:v22.0.1-685705.
我很感激一些建议.
我正在开发一个Google App脚本来确定远程资源的大小而不下载它.代码如下
function getRemoteFileSize()
{
var params = { "method" : "head" };
var resp = UrlFetchApp.fetch("https://www.google.com/images/srpr/logo11w.png", params);
Logger.log("Remote File Size: " + resp.getAllHeaders()["Content-Length"]);
}
Run Code Online (Sandbox Code Playgroud)
但是,Google App脚本似乎不支持头部请求,并且上述代码无法执行.
除了发出GET请求之外,什么是可行的替代方案?
我对所有建议持开放态度,包括使用具有API的第三方服务
我在这里已经读到,在Java中,具有相同名称但不同类型的两个变量可以在同一范围内共存。我的意思是这个
class test
{
private int x;
private double x;
}
Run Code Online (Sandbox Code Playgroud)
但是所有的Java IDE都不允许这样的代码。我想知道这样的代码在语法上是否正确,或者只是IDE不允许这样的代码防止歧义。
无论如何,这是网站的摘录
“如果幸运的话,您也许可以重新编译Jad的输出。但是,Java VM对于变量命名的规则比Java语言本身更为宽松。例如,一个有效的类文件可以包含多个名为'a的变量”,只要它们具有不同的类型。如果您反编译此类,则获得的源代码将无效。
JAD通常会重命名有问题的字段,并创建一个可重新编译的文件……唯一的问题是重新编译的文件将与原始类不兼容。”
让我们考虑一下这段代码
Image img=Toolkit.getDefaultToolkit().getImage("1.png");
g.drawImage(img,0,0,null);
Run Code Online (Sandbox Code Playgroud)
代码的作用是加载图像1.png并将其绘制在图形上下文中.现在我观察到的是drawImage第一次调用它时不会绘制任何图像.相反,它会在进一步调用时绘制图像.现在我认为这种行为是由异步图像加载或方法的惰性行为引起的.
要纠正这个问题,我能做的就是使用这样的javax.swing.ImageIcon类.
Image img=new ImageIcon("1.png").getImage();
g.drawImage(img,0,0,null);
Run Code Online (Sandbox Code Playgroud)
我想知道执行相同任务的其他更好的方法是什么.
我知道如何在线查找答案,用Java中的参数打开一个exe程序.但是我的具体捷径对我来说有点复杂.
我正在尝试打开一个具有以下目标的快捷方式:
C:\Windows\System32\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts
在我的程序中,我将分割位置和我认为的参数分开.但是,当我运行程序时,我收到错误'Could not create Java Virtual Machine, Program will Exit'.能够更好地了解最新情况的人能解释我可能做错了什么,或者指出我可以阅读的方向吗?
String location = "C:\\Windows\\System32\\javaw.exe";
String p1="-cp jts.jar;total.2012.jar";
String p2="-Dsun.java2d.noddraw=true";
String p3="-Dswing.boldMetal=false";
String p4="-Dsun.locale.formatasdefault=true";
String p5="-Xmx768M";
String p6="-XX:MaxPermSize=128M";
String p7="jclient/LoginFrame" ;
String p8 = "C:\\Jts";
try {
Process p = new ProcessBuilder(location,p1,p2,p3,p4,p5,p6,p7,p8).start();
} catch (IOException ex) {
Logger.getLogger(Openprogramtest.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的字符串(最后并不总是相同的文件名,这只是示例)
\\eabman03\edicom\Aterlasning\repstat.txt
Run Code Online (Sandbox Code Playgroud)
我想得到这个
\\eabman03\edicom\Aterlasning\
Run Code Online (Sandbox Code Playgroud)
所以我想用Java去掉这个字符串末尾的文件名.我该如何以最有效的方式做到这一点?
java ×7
adt ×1
android ×1
c ×1
eclipse ×1
file-read ×1
http-headers ×1
image ×1
javascript ×1
lazy-loading ×1
path ×1
regex ×1
string ×1
swing ×1
urlfetch ×1
visual-c++ ×1