标签: biginteger

使用包含bigint的嵌套LINQ查询

这是我想要的SQL(ClearinghouseKeybigint):

select *
from ConsOutput O
where O.ClearinghouseKey IN (
  select distinct P.clearinghouseKey
  from Project P
  Inner join LandUseInProject L on L.ClearinghouseKey = P.ClearinghouseKey
  where P.ProjectLocationKey IN ('L101', 'L102', 'L103')
  and L.LandUseKey IN ('U000', 'U001', 'U002', 'U003')
)
Run Code Online (Sandbox Code Playgroud)

内部查询是直接的,并在LINQPad中给出正确的结果:

var innerQuery = (from p in Projects
                  join l in LandUseInProjects on p.ClearinghouseKey equals l.ClearinghouseKey
                  where locations.Contains(p.ProjectLocationKey) 
                  &&  (landuses.Contains(l.LandUseKey)) 
                  select new { p.ClearinghouseKey  }).Distinct();
Run Code Online (Sandbox Code Playgroud)

但是外部查询给出了错误:从...中键入参数包含..无法从用法推断:

var returnQuery = from o in OperOutput
                  where (innerQuery).Contains(o.ClearinghouseKey)
                  select o;
Run Code Online (Sandbox Code Playgroud)

是因为ClearinghouseKey是一个bigint?还有其他任何方式来编写此查询吗? …

linq contains biginteger nested-query

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

java.math.BigInteger的问题

我在方法的头部有以下代码:

BigInteger foo = BigInteger.valueOf(0);
BigInteger triNum = BigInteger.valueOf(0);

//set min value to 1*2*3*4*5*...*199*200.
BigInteger min = BigInteger.ONE;
BigInteger temp = BigInteger.ZERO;
for(int i=1; i<=200; i++)
{
    temp = BigInteger.valueOf(i);
    min = min.multiply(temp);
}
System.out.println(min);

while(triNum.compareTo(min) <= 0)
{
    foo.add(BigInteger.ONE);
    triNum = triNum.add(foo);
    System.out.println("triNum: "+triNum);
}
Run Code Online (Sandbox Code Playgroud)

这应该将min加载到一个值(1*2*3*...*199*200),然后将triNum设置为第一个*三角形数**,其值大于min.

问题是,当我运行该方法时,我得到的是一个终端窗口,其中"triNum:0"列表在屏幕上滚动...我的代码中没有看到任何内容(尽管我完全可以做到有些错误,我对math.BigInteger有些不熟悉,这似乎又指向了BigInteger类.有人看到我的代码中有错误吗?

.................................................. .................................................. ......................

*三角形数字是一个可以达到的数字:1 + 2 + 3 + 4 + 5 + 6 + 7 + ......

java biginteger

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

如何将最大的n位无符号整数分配给Java中的BigInteger

我有一个场景,我正在使用大整数(例如160位),并试图创建最大可能的无符号整数,可以n在运行时用位数表示.在程序开始执行并从配置文件中读取值之前,不知道n的确切值.例如,n可能是160,或128,或192,等等......

最初我的想法是这样的:

BigInteger.valueOf((long)Math.pow(2, n));
Run Code Online (Sandbox Code Playgroud)

但后来我才意识到,转换为long会发生这种情况有点失败的目的,因为长时间内没有足够的位来存储结果.有什么建议?

java biginteger

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

Java BigInteger表示unsigned long

我试图BigInteger用来表示long来自Java中的C 的无符号64位(),我的方法与下面的帖子中提到的完全相同.

http://technologicaloddity.com/2010/09/22/biginteger-as-unsigned-long-in-java/

你们其中一个人可以证实这种方法是正确的吗?

在这方面的任何帮助表示赞赏.

java unsigned biginteger long-integer

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

如何在Java中将语言环境格式化的数字转换为BigInteger?

我搜索了很多,但没有帮助我:(假设我需要转换12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920(在葡萄牙语组分隔符:.)到BigInteger值.如何进行转换?我试过使用NumberFormat,DecimalFormat,没有任何作用或我没有正确的方式:(

java formatting locale numbers biginteger

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

如何将字符串解析为BigInteger?

我正在用加密技术写我的裁判工作,今天我试图从字符串中获取一个BigInteger数字.但我发现从字符串中获取BigInteger数字的唯一方法是

UTF8Encoding Encoding = new UTF8Encoding();
var bytes = Encoding.GetBytes(myString);
var myBigInteger = new BigInteger(bytes);
Run Code Online (Sandbox Code Playgroud)

但这不是我需要的方式.我需要一些能够完全返回BigInteger表示字符串的东西.例如,如果我有

var myString = "1234567890";
Run Code Online (Sandbox Code Playgroud)

我想要我的BigInteger

BigInteger bi = 1234567890;
Run Code Online (Sandbox Code Playgroud)

c# string biginteger

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

Java BigInteger.and对大数字不起作用?

我正在创建两个巨大的BigIntegers,然后将它们连接起来.但是和操作不起作用而是返回0.为什么?

BigInteger aa = new BigInteger("213092840173096182527577008347205670468257779233261101799142588416");
BigInteger bb = new BigInteger("226156424291633194186662097633113218007386784142018559245972777080014766080");
System.out.println(aa.and(bb));
Run Code Online (Sandbox Code Playgroud)

输出:0

我在那两个号码上做了一个BigInteger'或'''或''操作正常.还有其他人看到同样的问题吗?

请注意我使用的是jdk 1.8.

java biginteger

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

在Java中总结两个巨大的长

我写了这个方法,在arrayList中搜索是否有两个数字,它们总和等于变量elem.问题是变量的总和超过了long类型的维数.我怎么写呢?

public static boolean searchSum(ArrayList<Long> array, long elem) {
   int left = 0, right = array.size()-1;
   while (left<right) {
     long n1=Long.valueOf(array.get(left));
     long n2=Long.valueOf(array.get(right));
     if ((n1+n2)==elem) return true;
     else if ((n1+n2)<elem) left++;
     else right--;
   }
   return false;
 }
Run Code Online (Sandbox Code Playgroud)

java integer integer-overflow biginteger long-integer

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

在Java中将字符串UUID转换为BigInteger

我正在尝试将以字符串形式出现的UUID转换为Big Integer,但每次都失败,并带有Number Format异常,因为它需要String Decimal作为参数。有什么方法可以实现这一目标。

String x = "6CFAFD0DA976088FE05400144FFB4B37";
Run Code Online (Sandbox Code Playgroud)

我也尝试了基数,但输出是不同的。

BigInteger big = new BigInteger(x, 0);

System.out.println(big);
Run Code Online (Sandbox Code Playgroud)

感谢您的协助,TIA。

java uuid biginteger

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

如何指定BigInteger类型的最大位数BigInteger?

我知道BigInteger有一个构造函数,你可以通过传递新BigInteger的最大bitLength和一个随机参数来生成随机BigInteger:

BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)

如何生成随机BitInteger,其中numBits的类型为BitInteger而不是int?注意:我不想这样做myBitInteger.intValue().

java biginteger

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