标签: long-integer

从 Double.toLongBits 创建的 long 中获取双精度值

有没有办法将long我从Double.toLongBits后面得到的 a 反转为 a Double
以下不起作用:

Double n = 171.30672219;
System.out.println(Double.doubleToLongBits(n));
System.out.println(new Double(Double.doubleToLongBits(n)));  
Run Code Online (Sandbox Code Playgroud)

这打印:

4640231336019091517
4.6402313360190915E18

虽然我想找回171.30672219

java double types decimal long-integer

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

在List <long>中找到第一个可用的long

好的,这应该很有趣.

我假设我有以下代码:

在这个例子中,第一个可用的数字是2.

List<long> myList = new List<long>(){0,1,10,3};

在这个例子中,第一个可用的数字是'4'.

List<long> myList = new List<long>(){0,1,2,3};

有任何想法吗?

c# list long-integer

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

Java int和long:如何更改最重要的位?

为了好玩,我一直在java中实现DES算法.(嗯,实际上并不是那么有趣).在算法中,你处理64个数据块,我想:嘿,它是完美的,让我们使用"long"来存储我的二进制数据.

然后我遇到了一个让我生气的严重问题:让我们说你建立一个很长的,像这样:

long value = 785537;
Run Code Online (Sandbox Code Playgroud)

假设您想要将值的最高位设置为1,您可以执行以下操作:

value |= 0x8000000000000000l;
Run Code Online (Sandbox Code Playgroud)

很简单,对吧?但它根本不起作用.Java可以轻松改变另一位,这意味着

value |= 0x7000000000000000l;
Run Code Online (Sandbox Code Playgroud)

将工作.但如果它是最重要的一点,它将无法工作.

为什么?有没有办法实现我想要的?

提前感谢您的回答.

编辑:

以下是我编写的代码示例,以二进制形式显示long:

public static void printBits(long input){
    StringBuilder builder = new StringBuilder();
    for(int i = 0; i < 64; i++){
        if((input & (0x1l << i)) != 0){
            builder.append('1');
        } else {
            builder.append('0');
        }
    }

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

如果我这样做:

long val = -1;
printBits(val);
Run Code Online (Sandbox Code Playgroud)

它将按照预期打印"1111111111111111111111111111111111111111111111111111111111111110".如果我然后输入:

val |= Long.MIN_VALUE;
printBits(val);
Run Code Online (Sandbox Code Playgroud)

要么

val |= 0x8000000000000000l;
printBits(val);
Run Code Online (Sandbox Code Playgroud)

它的印刷"1111111111111111111111111111111111111111111111111111111111111110"也......

如果那么做以下测试:

(val & 8000000000000000l) != 0;
Run Code Online (Sandbox Code Playgroud)

这是假的......

java int bit-manipulation long-integer

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

在Python中存储超过9,000位的大数字

我打算在Python中使用非常大的数字,但是想知道Python是否可以处理非常大的数字.这些数字将有多达3,000个零.

并且,一个有3,000个零的1使用多少字节?

第三个问题,如何将一个数字作为整数保存到Python文件中而不必使用str()它?

python integer file long-integer

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

java中的Longs太苛刻了吗?为什么这样?

我有一个Long变量说,

private Long m_prevPacketRecvdTime = null;
Run Code Online (Sandbox Code Playgroud)

现在我有一个setter/getter对,

    public void setM_prevPacketRecvdTime() {
        if (this.m_prevPacketRecvdTime == null) {
            this.m_prevPacketRecvdTime = new Long(System.currentTimeMillis());
        } else {
            // Why to create a new Object every time
                    //Why I can't just set the new value
                    //Why use new operator here instead of an Assignment or set method call
        }
    }
Run Code Online (Sandbox Code Playgroud)

而不是传统的setter方法,我想改进它,通过1.传递long而不是Long,2.只创建一个新的Long,剩下的时间只是将新值设置为现有的Long对象.但令我难以置信的是,Long没有这样的方法.

我们是否真的需要在每次想要更改其值时创建一个新的Long对象,我们如何为现有的Long对象设置一个新的long值(与longvalue()相反)?

更多信息 在寻找答案的同时,我也遇到了具有类似功能的AtomicLong,但我不确定这对我是否有用.因为他们清楚地说AtomicLong" 不能用作Long的替代品 ".

java wrapper long-integer

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

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
查看次数

字符串到长转换在C和Java上有所不同,为什么?

我有一个字符串喜欢"01030920316".当我要转换这个字符串时,然后转换为字节,然后给出下面的输出为java

output in java : Tag in bytes :  0, 0, 0, 0, 61, 114, -104, 124
Run Code Online (Sandbox Code Playgroud)

当我得到这个输出时,我在C中做同样的事情

output in C : Tag in bytes : 124,152,114,61,0,0,0,0
Run Code Online (Sandbox Code Playgroud)

在这里,我理解-104 and 152因为有符号和无符号之间的不同,但是为什么在java和C中最初为0.对于这种行为,当我的这个字节进入C程序端进行验证时,我遇到了问题.

请解释我发生问题的地方.

Java程序:

final byte[] tagBytes = ByteBuffer.allocate(8)
                .putLong(Long.parseLong("01030920316")).array();
System.out.println("Tag in bytes  >> " + Arrays.toString(tagBytes));
Run Code Online (Sandbox Code Playgroud)

C程序:

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>

/** To access long long values as a byte array*/
typedef union uInt64ToByte__
{
    uint64_t m_Value;
    unsigned char m_ByteArray[8];

}uInt64ToByte;

int main()
{
    uInt64ToByte …
Run Code Online (Sandbox Code Playgroud)

c java byte long-integer

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

Java如何删除长的最后一个数字?

我正在使用查询来根据给定时间提供数据.所以我想抓住一个时间戳删除它的最后3位数.可能吗?怎么样?给我一个提示,我将完全赞成这一点

java timestamp long-integer

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

比较int与long和其他

我想知道这样的事情:

int a = ...;
long b = ...;

if (a < b)
     doSomethings();
Run Code Online (Sandbox Code Playgroud)

总是有效(除了未签名)

我只是测试了几个值,但我想确定.我认为a在比较中投入很长时间,其他类型呢?

c int comparison long-integer

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

在Java中将字符串转换为long时出现NumberFormatExpression错误

我目前正在编写一个脚本来尝试解决第13个Euler问题,但每当我运行它时它会产生以下错误.

线程"main"java.lang.NumberFormatException中的异常:对于java.base/java.lang.Long.parseLong中java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)的输入字符串:"37107287533902102798797998220837590246510135740250" (Long.java:692)在java.base/java.lang.Long.parseLong(Long.java:817)的Script_013.main(Script_013.java:108)

进程以退出代码1结束

我不确定为什么会发生这种情况,因为我确信每个字符串都只包含数字.我.trim()在其他帖子上添加了很多评论的建议,但这似乎没有什么区别.

有谁知道为什么会这样.感谢所有帮助,谢谢!

以下是代码;

public class Script_013
{
    public static void main (String [] args)
    {
        String numbers[] = { "37107287533902102798797998220837590246510135740250",
            "46376937677490009712648124896970078050417018260538",
            "74324986199524741059474233309513058123726617309629",
            "91942213363574161572522430563301811072406154908250",
            "23067588207539346171171980310421047513778063246676",
            "89261670696623633820136378418383684178734361726757",
            "28112879812849979408065481931592621691275889832738",
            "44274228917432520321923589422876796487670272189318",
            "47451445736001306439091167216856844588711603153276",
            "70386486105843025439939619828917593665686757934951",
            "62176457141856560629502157223196586755079324193331",
            "64906352462741904929101432445813822663347944758178",
            "92575867718337217661963751590579239728245598838407",
            "58203565325359399008402633568948830189458628227828",
            "80181199384826282014278194139940567587151170094390",
            "35398664372827112653829987240784473053190104293586",
            "86515506006295864861532075273371959191420517255829",
            "71693888707715466499115593487603532921714970056938",
            "54370070576826684624621495650076471787294438377604",
            "53282654108756828443191190634694037855217779295145",
            "36123272525000296071075082563815656710885258350721",
            "45876576172410976447339110607218265236877223636045",
            "17423706905851860660448207621209813287860733969412",
            "81142660418086830619328460811191061556940512689692",
            "51934325451728388641918047049293215058642563049483",
            "62467221648435076201727918039944693004732956340691",
            "15732444386908125794514089057706229429197107928209",
            "55037687525678773091862540744969844508330393682126",
            "18336384825330154686196124348767681297534375946515",
            "80386287592878490201521685554828717201219257766954",
            "78182833757993103614740356856449095527097864797581",
            "16726320100436897842553539920931837441497806860984",
            "48403098129077791799088218795327364475675590848030",
            "87086987551392711854517078544161852424320693150332",
            "59959406895756536782107074926966537676326235447210",
            "69793950679652694742597709739166693763042633987085",
            "41052684708299085211399427365734116182760315001271",
            "65378607361501080857009149939512557028198746004375",
            "35829035317434717326932123578154982629742552737307",
            "94953759765105305946966067683156574377167401875275",
            "88902802571733229619176668713819931811048770190271",
            "25267680276078003013678680992525463401061632866526",
            "36270218540497705585629946580636237993140746255962",
            "24074486908231174977792365466257246923322810917141",
            "91430288197103288597806669760892938638285025333403",
            "34413065578016127815921815005561868836468420090470",
            "23053081172816430487623791969842487255036638784583",
            "11487696932154902810424020138335124462181441773470",
            "63783299490636259666498587618221225225512486764533",
            "67720186971698544312419572409913959008952310058822",
            "95548255300263520781532296796249481641953868218774",
            "76085327132285723110424803456124867697064507995236",
            "37774242535411291684276865538926205024910326572967",
            "23701913275725675285653248258265463092207058596522",
            "29798860272258331913126375147341994889534765745501", …
Run Code Online (Sandbox Code Playgroud)

java numberformatexception long-integer

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