jjzjj

Unsigned

全部标签

c# - P/调用,c# : unsigned char losing a byte

我正在为软件的SDK编写一个dll文件,我正在尝试调用一个函数来获取有关软件主机的信息。函数想要的结构中有两个无符号字符变量(HostMachineAddress,HostProgramVersion),当我尝试从c#调用它时,我似乎“松开了”最后一个字节...如果我更改c#中的SizeConst结构低于5我确实得到了丢失的字节,但是它导致另一个变量丢失数据。有人可以帮我找到解决这个问题的方法吗?还尝试使用类而不是结构导致system.stackoverflow错误C#结构[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)

c# - 在 C 和 C# 中将 int 提升为 unsigned int

看看这段C代码:intmain(){unsignedinty=10;intx=-2;if(x>y)printf("xisgreater");elseprintf("yisgreater");return0;}/*Output:xisgreater.*/我明白为什么输出的x更大,因为当计算机比较两者时,x被提升为无符号整数类型。当x提升为无符号整数时,-2变为65534,这肯定大于10。但为什么在C#中,等效代码会给出相反的结果?publicstaticvoidMain(String[]args){uinty=10;intx=-2;if(x>y){Console.WriteLine("x

c# - 是否有 C# 函数将 64 位 "Unsigned"值格式化为其等效的二进制值?

要将数字格式化/显示为其等效的二进制形式(在C#中),我总是简单地调用:Convert.ToString(myNumber,2);今天,我才意识到我一直在调用的.ToString()重载不支持大于9223372036854775807的值。请注意.ToString()重载的签名是:.ToString(long,int)。其中“long”是一个64位有符号值,最大值为9223372036854775807。换句话说,使用C#,当我运行它时:Convert.ToString(9223372036854775808,2);我收到此异常消息并不奇怪(由于签名):Thebestoverloade

C#多线程无符号递增

我想从多个线程递增一个无符号整数。我知道Interlocked.Increment,但它不处理无符号整数。我可以使用lock(),但出于性能原因我宁愿不使用。仅以正常方式递增它是否线程安全?偶尔的增量丢失也没关系,因为它只用于统计。我不希望值(value)被破坏。 最佳答案 您说您出于性能原因不想使用lock-但您测试过吗?一个无争议的锁(这很可能是,从它的声音来看)是非常便宜的。当涉及到线程时,我通常会选择“明显正确”而不是“聪明且可能性能更好”(一般来说,但尤其是线程)。在锁定和不锁定的情况下对您的应用进行基准测试,看看您是否能

javascript - iPad 上的 javascript 无符号移位运算符有问题吗?

我不小心遇到了iPad上Safari的javascript引擎中似乎非常奇怪的错误。无符号移位运算符>>>应该按位右移一个数字。我在一个在其他平台上运行良好的脚本中遇到了一些错误,将其剥离并最终得到:varone=1;functionZero(){returnone*0;}functionStrange(){returnone=(Zero()+1)>>>0;}vars='Abunchofones:';//exceptoniPad:(for(vari=0;iLivedemo奇怪的是,它正确地生成了一堆1,但是在某个时刻,有些东西坏了,从那时起它只输出零。显然>>>0在这里是没有意义的(在

javascript - asm.js 类型错误 : arguments to a comparison must both be signed, unsigned or double

我只是在学习asmjs的基础知识,但我遇到了一个错误。我不知道我做错了什么。TypeError:asm.jstypeerror:argumentstoacomparisonmustbothbesigned,unsignedordoubles;intandintaregiven代码:window.onload=(function(stdlib,foreign){"useasm";varlog=foreign.log;functionmain(){vara=0,b=0;a=10;b=20;if(a 最佳答案 specification有

javascript - 山魈 "reject_reason":"unsigned"

我正在尝试使用mandrill电子邮件服务发送电子邮件,但出现以下错误:[{"email":"pranav_withyou@hotmail.com","status":"rejected","_id":"daab0daa538a4fe9b161be709593be0b","reject_reason":"unsigned"}]我正在尝试使用javascript中的ajax调用发送电子邮件,例如:$.ajax({type:"POST",url:"https://mandrillapp.com/api/1.0/messages/send.json",data:{"key":"Removed

php - 如何使用 PHP 将整数转换为 8 位二进制数据?

我需要将整数转换为8bit,但是pack只能转换为16bit的二进制数据。我在谷歌中搜索,但找不到任何东西。有人可以帮忙吗? 最佳答案 echo$test=pack('C',1);根据格式将给定的参数打包成二进制字符串。此函数的思想来自Perl,所有格式化代码的工作方式与Perl相同。但是,缺少一些格式代码,例如Perl的“u”格式代码。请注意,有符号和无符号值之间的区别仅影响函数unpack(),而函数pack()对有符号和无符号格式代码给出相同的结果代码是aNUL-paddedstringASPACE-paddedstringh

php - 将 IP 存储为 unsigned int?

我读到在数据库中存储IP地址的最佳方法是创建一个UnsignedInt(10)字段。如何使用PHP转换IP地址?我试过使用$this->ip=long2ip($_SERVER['REMOTE_ADDR']);但这似乎行不通。我找到了使用将其转换回IP地址的方法$this->ip=sprintf("%u",ip2long($result['ip']));最初如何转换IP地址?我应该为此使用PHP吗?或者集成到MySQL查询中会更好吗? 最佳答案 long2ip将整数转换为IP格式和ip2long做相反的事情。于是使用ip2long将$

php - 是否可以在不损失 PHP 精度的情况下使用大型 unsigned int64?

我了解整数大小,PHP_INT_MAX取决于平台。在64位系统上我可以获得:$large_number=9223372036854775807从我读到的PHPDocumentExample3here,当整数溢出时,PHP将整数处理为带有precisionofroughly14decimalsdigits的float。,即:UnsignedInt64:18446744073709551615PHPwillhandlesas:1.844674407371E+19所以看起来所有的精度都只保持在SignedInt64的最大值。这真的只是PHP的限制,我对此无能为力吗?