标签: bits

为什么我们需要GUID的规范格式?

一个辛苦的工作日我注意到我用通常的.NET 方法生成的GUID在第三个块的开头Guid.NewGuid()有相同的数字4:

efeafa5f-fe21-4ab4-ba82-b9eefd5fa225
480b64d0-6762-4afe-8496-ac7cf3292898
397579c2-a4f4-4611-9fda-16e9c1e52d6a
...
Run Code Online (Sandbox Code Playgroud)

屏幕上每隔一秒出现一次.在第五个GUID之后,我一直关注这个模式.最后,最后一个内部有相同的四位,我认为我是一个幸运的人.我回到家,觉得整个世界都为我这样一个特殊的人开放.下周我找到了一份新作品,打扫了我的房间并打电话给我的父母.

但今天我又面临同样的模式.千倍.我不再感受到选择的了.

我用谷歌搜索了它,现在我知道了UUID和一个规范格式,有4个保留位version和2个用于variant.

这是一个试验片段:

static void Main(string[] args)
{
    while (true)
    {
        var g = Guid.NewGuid();
        Console.WriteLine(BitConverter.ToString(g.ToByteArray()));
        Console.WriteLine(g.ToString());
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

但仍然有一件事我不明白(除了如何继续生活).为什么我们需要这些保留位?我看到它会如何伤害 - 暴露内部实施细节,更多碰撞(仍然无需担心,但有一天......),更多的自杀 - 但我没有看到任何好处.你能帮我找到吗?

在GUID生成algorythm

random uuid bits guid canonicalization

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

将 byte[] 转换为 BitSet

我正在尝试将字节数组转换为 BitSet。以下是我正在使用的代码:

public BitSet byteToBits(byte[] bytearray){
    BitSet returnValue = new BitSet(bytearray.length*8);
    ByteBuffer  byteBuffer = ByteBuffer.wrap(bytearray);
    //System.out.println(byteBuffer.asIntBuffer().get(1));
    //Hexadecimal values used are Big-Endian, because Java is Big-Endian
    for (int i = 0; i < bytearray.length; i++) {
        byte thebyte = byteBuffer.get(i);
        for (int j = 0; j <8 ; j++) {
            returnValue.set(i*8+j,isBitSet(thebyte,j));
        }
    }
    return returnValue;
}

private static Boolean isBitSet(byte b, int bit)
{
    return (b & (1 << bit)) != 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 JUnit 测试对其进行测试,如下所示。

@org.junit.Test
public void byteToBits() throws …
Run Code Online (Sandbox Code Playgroud)

java byte bits bitset

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

Bit Twiddle执行此转换

好奇,如果有人可能对如何对二进制数进行以下操作有一些见解:

兑换

   01+0 -> 10+1 (+ as in regular expressions, one or more)
    01 -> 10  
    10 -> 01  
Run Code Online (Sandbox Code Playgroud)

所以,

10101000010100011100
01010100101010100010
Run Code Online (Sandbox Code Playgroud)

并澄清这不是一个简单的反转:

000000100000000000
000001010000000000
Run Code Online (Sandbox Code Playgroud)

我正在考虑正则表达式,但我正在使用二进制数,并希望保持这种状态.这个讨厌的黑客页面也没有给我任何见解.这显然具有细胞自动机的一些本质.那么,任何人都有一些可以解决这个问题的操作吗?(不需要代码,我知道该怎么做).

bits bit-manipulation

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

32x32px .ico文件的最大可能尺寸是多少?

我正在favicon.ico编写一个脚本,我需要知道可能的最大位数.

size favicon bits .ico

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

记忆和非理性以及浮动数字

有些数字不能存储在"存储位"中,因为它们的二进制表示会使它们无休止地存在.

在二进制11.111011101110中......这不是确切的数字.我不记得到底是什么.

但我们可以认为它在我们的基数10中"像一个无理数",在小数点后无限地继续.

当转换为基数2时,一些有理数的数字会面临这个问题.那么我们如何......

1)代表他们?

2)用计算机程序计算它们?

3)对它们进行操作?

编辑:删除混乱并说谢谢:

好吧,我在上面的帖子中说 - >查看它或者认为它像一个不合理的或一个长到十几位的数字.请阅读"喜欢"这个词.

现在我有一个数字0.2,这个简单的数字不能用二进制形式表示.那么如何对它进行操作.

其他问题仍未解决.

我只想提一下我对这里人们的信念:

那么去"库"或大约存储不是堆栈溢出的极客的答案,因为它们是某些应用程序,其中重要的是拥有数字.

c c++ memory bits

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

是否有任何Visual Basic .NET的大整数类(128位或更多位)?

好吧,我可以找到许多大整数库,但它们适用于除VB.NET之外的所有编程语言.有没有人知道Visual Basic .NET的类/库可以处理非常大的数字?(我想处理1024位甚至更多位).唯一的计算支持我需要它添加,替换,乘法,除法和舍入.

与此代码一起使用是很好的:

Dim Letterz() As Integer = {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, …
Run Code Online (Sandbox Code Playgroud)

vb.net integer bits class biginteger

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

BigInteger的数量级最小化

关于BigInteger大小的表示,BigInteger类源代码必须说明这一点:

这个BigInteger的大小,以big-endian顺序:这个数组的第0个元素是幅度最重要的int.幅度必须是"最小的",因为最重要的int(mag [0])必须是非零的.这对于确保每个BigInteger值只有一个表示是必要的.请注意,这意味着BigInteger零具有零长度磁盘阵列.

在这种情况下,最小的幅度是什么意思?同时如何使最显著INT非零确保恰好每一个代表BigInteger的价值?

java bits biginteger

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

将一系列位转换为NSData对象

如何将存储在a中的一系列32位(表示4个字节)NSString转换为NSDataobjective-c中的4个字节的对象?

例如,如何转换以下字符串:

NSString *bitSeries = @"00000000000000000000000111101100";
Run Code Online (Sandbox Code Playgroud)

进入NSData长度恰好为4的物体?

bits objective-c nsdata ios

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

Postgresql转换位变为整数

搜索了postgresql文档http://www.postgresql.org/docs/8.4/interactive/functions-bitstring.html,了解有关将位变换为整数的信息

但无法找到任何信息.

select '011111'::bit(4)::varbit(4)::integer as varbit
Run Code Online (Sandbox Code Playgroud)

感谢您的回复.

postgresql bits

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

我无法理解为什么当我按位或短和char时我得到这个结果

有人可以解释为什么我在按位或两个数字时得到这个结果?我真的很困惑.

signed char signedChar = -64;       // This is now -64, or 1100 0000
unsigned char unsignedChar = signedChar; // This is now 196, or 1100 0000 (The same)

short signedShort = 0;     // This is now 0000 0000 0000 0000
signedShort |= signedChar;   // This is now -64, not 196 
Run Code Online (Sandbox Code Playgroud)

我预计会发生这种情况,我或者签署了短期签署的协议,这是:

0000 0000 0000 0000 or'ed with
          1100 0000
0000 0000 1100 0000 result 
equalling 196.
Run Code Online (Sandbox Code Playgroud)

但相反,我得到了-64

为什么这个OR操作在开头添加一个?我完全期待不同的东西.

谢谢.

c c++ bits bit-manipulation

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