当我移位-1时,我正在乱搞并注意到Java和Perl之间我不理解的差异.
我认为整数存储在二进制补码二进制中,所以如果有32位,则-1为11 ... 11(32次).
我期望-1 >> 1给$ 2 ^ 31 - 1 $ = 011 ... 11 = 2147483647.
我期望-1 << 1给出= 11 ... 110 = -2.
这些不同行为的原因是什么?这些标准在不同语言中的位置在哪里?
以下是Perl和Java的代码和打印输出:
在Perl中:
print (-1 >> 1, "\n");
print (-1 << 1, "\n");
Run Code Online (Sandbox Code Playgroud)
2147483647
4294967294
在Java中:
public class Tempy {
public static void main(String[] args){
System.out.println( -1 >> 1);
System.out.println( -1 << 1);
}
}
Run Code Online (Sandbox Code Playgroud)
-1
-2
我已经看过几个使用Perl模块的例子,我仍然无法做到正确.我正在学习本教程:http://www.perlmonks.org/?node_id = 102347.对于以下.pl和.pm文件,我打电话
$ perl Solver.pl
并有以下错误.
Undefined subroutine &main::mergeSort called at Solver.pl line 13.
Run Code Online (Sandbox Code Playgroud)
Solver.pl
#!/usr/bin/perl
#Program usage: perl PROGRAM
#example:
#perl solver.pl
use strict;
use warnings;
use MergeSort qw(:DEFAULT);
### MAIN ###
mergeSort(\@list); #ERROR;
### END MAIN ###
Run Code Online (Sandbox Code Playgroud)
MergeSort.pm
package MergeSort;
use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = ();
@EXPORT_OK = qw(mergeSort);
%EXPORT_TAGS = ( DEFAULT => [qw(&mergeSort)],
Both => [qw(&mergeSort …Run Code Online (Sandbox Code Playgroud) 我试图用JBF-8编码将我的JButton的文本设置为"Compute b--¹(mod a)",但这两个尝试都不起作用.问题是减号,但不确定我能做什么.
尝试1:
_computeModInverseButton = new JButton("Compute b?¹ (mod a)");
Run Code Online (Sandbox Code Playgroud)

尝试2:
_computeModInverseButton = new JButton("Compute b<html><sup>-1</sup></html> (mod a)");
Run Code Online (Sandbox Code Playgroud)

所以问题是我的HTML格式,但现在有了
_computeModInverseButton = new JButton("Compute b-1 (mod a)");
Run Code Online (Sandbox Code Playgroud)
看起来像
如何格式化以适应上标?
java ×2
perl ×2
binary ×1
bit-shift ×1
html ×1
jbutton ×1
perl-module ×1
superscript ×1
swing ×1