Tag: 整数

可包含整数值的最小字节数

给定一个整数值,我需要一些方法来找出存储该值所需的最小字节数。 该值可以是有符号或无符号的,最多为64位 。 还要将符号位考虑为有符号整数。 例如: 8 requires 1 byte at minimum unsigned 255 requires 1 byte at minimum signed 255 requires 2 bytes at minimum 4351 requires 2 bytes at minimum -4294967296 requires 5 bytes at minimum unsigned 0xFFFFFFFFFFFFFFFF requires 8 bytes at minimum 我可以想到一种快速而肮脏的方法来解决这个问题,使用许多if语句,但可能有更好的方法(例如更简单,更聪明,更快)。 您可以假设一个带签名int (long value, bool signed)的方法int (long value, bool signed)或两个方法int (long […]

随机数发生器 – 可变长度

目前我的程序(见下文)生成长度为8-12个字符的随机字符串(由数字组成)。 public static string GenerateNewCode(int CodeLength) { string newCode = String.Empty; int seed = unchecked(DateTime.Now.Ticks.GetHashCode()); Random random = new Random(seed); // keep going until we find a unique code ` do { newCode = random.Next(Convert.ToInt32(Math.Pow(10, CodeLength – 1)), Convert.ToInt32(Math.Pow(10, CodeLength) – 1)).ToString(“0000”); } while (!ConsumerCode.isUnique(newCode)); // return return newCode; } 但是,它们是该方法的问题,当codeLength为10或更大时,它会导致错误,因为10 9大于int32.MaxValue 。 不知道如何解决这个问题。

如何在整数数据类型变量中将sql参数作为空值传递?

如何将sql参数作为空值传递给整数数据类型变量? StockBO sBO = new StockBO(); sBO.Mode = 2; if (ddcmpanyname.SelectedIndex != 0) { sBO.Client_id = Convert.ToInt16(ddcmpanyname.SelectedValue); } else { sBO.Client_id = Convert.ToInt16(DBNull.Value);//Object cannot be cast from DBNull to other types. sBO.Client_id =DBNull.Value;//Cannot implicitly convert type } ds=_StockController.StockGet(sBO); 我改变了这样的代码它给出了错误,就像我的评论检查其他部分

如何在C#中使用Int64

问题很简单! 你如何在C#中表示64位int?

关于生成无法追踪的发票ID的想法

我想在我的应用中为客户打印发票。 每张发票都有一个发票ID 。 我希望ID为: 顺序(最近输入的ID迟到) 32位整数 不像1 2 3那样容易追踪,所以人们无法分辨出我们销售的商品数量。 我自己的想法:自特定日期和时间以来的秒数 (例如1/1/2010 00 AM)。 任何其他想法如何生成这些数字?

检查double是否是C#中的整数有什么好方法?

可能重复: 如何确定十进制/双精度是否为整数? 我有一个double类型的变量,我想检查它是否是一个整数。 目前我有 public bool CheckIfInteger(double number) { return number.ToString().Contains(“.”) == false; } 有没有更好的办法? 更新:对不起我没有意识到混淆的可能性,整数我的意思是整数的数学定义,即自然数和非零自然数的负数。

二进制字符串到整数

我有一个由用户输入的二进制字符串,我需要将其转换为整数。 起初我天真地使用了这条简单的线: Convert.ToInt32(“11011”,2); 不幸的是,如果用户直接输入整数,则抛出exception。 Convert.ToInt32(“123”,2); // throws Exception 如何确保用户输入的字符串实际上是二进制字符串? try..catch ….但那太难看了。 类似’Int32.TryParse’的东西也许。 谢谢

C#:指向多个整数的引用/指针数组

我想在数组中引用一些短路。 我以为我可以创建短裤,然后将它们添加到arrays中。 所以…每次更改引用的对象时,都会反映在数组中,反之亦然。 做一些试验使我确信它不是那么有效。 事实上,看起来价值是转移而不是参考。 下面的代码创建了两个short,将这些作为对象添加到数组中,然后更改原始short。 但是,当访问数组中假定的引用short时它没有改变,这使我相信它是一个与原始对象无关的全新对象。 Console.WriteLine(“Testing simple references:”); short v1 = 1; short v2 = 2; object[] vs = new object[2]; vs[0] = v1; vs[1] = v2; v1 = 1024; v2 = 512; Console.WriteLine(” v1: ” + (short)vs[0]); Console.WriteLine(” v2: ” + (short)vs[1]); 我在这里误解了一些基本的东西,如果有人可以解释,我会很感激,并且可能会指出一个可以做我想做的解决方案。

可变长度整数编码

我正在尝试对LZ1 / LZ77减压算法进行逆向工程。 要输出的解码缓冲器/窗口的区域的长度在文件中被编码为可变长度整数。 我已尽可能多地阅读有关可变长度整数编码的内容,在这种情况下使用的方法似乎与我见过的其他方法不同。 也许是为了避免专利问题或者只是为了混淆。 包含的代码可能不完整,但此时它至少处理了几个文件。 我无法看到,如果有的话,下面使用的公式可以简化为更简单的方法。 大多数可变长度整数编码算法使用某种循环,但对于这一点,我无法做到这一点,因为在评估每个半字节时,公式似乎并不一致。 建议非常感谢。 private static int getLength(BitReader bitStream) { const int minSize = 2; int length = 0; byte nibble3, nibble2, nibble1; nibble3 = bitStream.ReadNibble(); if (nibble3 >= 0xc) { nibble2 = bitStream.ReadNibble(); nibble1 = bitStream.ReadNibble(); if (nibble3 == 0xF & nibble2 == 0xF & nibble1 == 0xF) […]

在C#中比较2个整数列表/数组的最佳方法是什么?

我想比较2个整数列表是否相等。 如果能让它变得更容易,我很乐意提前对它们进行排序。 这是我要比较的两件事的例子。 对于下面,我希望结果是真的。 注意:列表中永远不会有任何重复项(没有重复值) List list = new List(){1, 4,6,7}; int[] myArray = new int[]{1, 6,7 ,4};