本文将为您提供关于在int中找到第n个SET位的详细介绍,我们还将为您解释找到int需要char的相关知识,同时,我们还将为您提供关于AndroidStudio在signInReport中找不到第二个
本文将为您提供关于在int中找到第n个SET位的详细介绍,我们还将为您解释找到int需要char的相关知识,同时,我们还将为您提供关于AndroidStudio在signInReport中找不到第二个sha-1键、ASP.NET中继器模板,每第N个元素的条件代码、c – 将巴比伦平方根算法推广到第n个根、html – 选择一个类,其余的第3个;第n个孩子和第n个类型没用的实用信息。
本文目录一览:- 在int中找到第n个SET位(找到int需要char)
- AndroidStudio在signInReport中找不到第二个sha-1键
- ASP.NET中继器模板,每第N个元素的条件代码
- c – 将巴比伦平方根算法推广到第n个根
- html – 选择一个类,其余的第3个;第n个孩子和第n个类型没用
在int中找到第n个SET位(找到int需要char)
我不仅要找到最低设置位,还想找到n
第最低设置位的位置。(我 不是 在谈论n
第th位的值)
例如,说我有:0000 1101 1000 0100 1100 1000 1010 0000
我想找到设置的第4位。然后我要它返回:0000 0000 0000 0000 0100 0000 0000 0000
如果为popcnt(v) < n
,则返回此函数会很有意义0
,但是这种情况下的任何行为对我来说都是可以接受的。
我正在寻找比循环更快的方法。
答案1
小编典典事实证明,确实可以无循环执行此操作。预计算此问题的(至少)8位版本最快。当然,这些表会占用高速缓存空间,但是在几乎所有现代PC方案中,仍然应该有净加速。在此代码中,n
= 0返回最低设置位,n = 1倒数第二,以此类推。
__popcnt解决方案
有一个使用__popcnt内在函数的解决方案(您需要__popcnt才能非常快,否则通过简单循环解决方案获得的任何性能提升都是没有意义的。幸运的是,大多数SSE4
+时代的处理器都支持它)。
// lookup table for sub-problem: 8-bit vbyte PRECOMP[256][8] = { .... } // PRECOMP[v][n] for v < 256 and n < 8ulong nthSetBit(ulong v, ulong n) { ulong p = __popcnt(v & 0xFFFF); ulong shift = 0; if (p <= n) { v >>= 16; shift += 16; n -= p; } p = __popcnt(v & 0xFF); if (p <= n) { shift += 8; v >>= 8; n -= p; } if (n >= 8) return 0; // optional safety, in case n > # of set bits return PRECOMP[v & 0xFF][n] << shift;}
这说明了分而治之方法是如何工作的。
通用解决方案
还有一种针对“通用”体系结构的解决方案-不使用__popcnt。可以通过处理8位块来完成。您还需要一个查找表来告诉您一个字节的popcnt:
byte PRECOMP[256][8] = { .... } // PRECOMP[v][n] for v<256 and n < 8byte POPCNT[256] = { ... } // POPCNT[v] is the number of set bits in v. (v < 256)ulong nthSetBit(ulong v, ulong n) { ulong p = POPCNT[v & 0xFF]; ulong shift = 0; if (p <= n) { n -= p; v >>= 8; shift += 8; p = POPCNT[v & 0xFF]; if (p <= n) { n -= p; shift += 8; v >>= 8; p = POPCNT[v & 0xFF]; if (p <= n) { n -= p; shift += 8; v >>= 8; } } } if (n >= 8) return 0; // optional safety, in case n > # of set bits return PRECOMP[v & 0xFF][n] << shift;}
当然,这可以通过循环来完成,但是展开形式更快,并且异常形式的循环会使编译器不太可能为您自动展开它。
AndroidStudio在signInReport中找不到第二个sha-1键
选择相应项目并从 https://console.cloud.google.com/home
中选择API & Services
/Credentials
后,您应该能够在 Google Cloud Console 中找到 SHA 密钥
还提到的行 apply plugin: 'com.google.gms.google-services'
应该位于 build.gradle 文件(应用模块)中,而不是在项目的 build.gradle 文件中。如果你把它放在错误的文件中,只需将行移到后者即可。
ASP.NET中继器模板,每第N个元素的条件代码
但是,我想将K图像包裹在div中.让我说我绑定25图像到中继器,我想要5个图像每个div.如何有条件地创建div的开始和关闭标签?
这是一个更适合for循环的情况.
解决方法
<asp:Repeater ID="repImages" runat="server"> <HeaderTemplate><div></HeaderTemplate> <ItemTemplate> <%# (Container.ItemIndex != 0 && Container.ItemIndex % 5 == 0) ? @"</div><div>" : string.Empty %> <asp:Image ID="imggallery" runat="server" ImageUrl='<%# /* your code here */ %>' /> </ItemTemplate> <FooterTemplate></div></FooterTemplate> </asp:Repeater>
c – 将巴比伦平方根算法推广到第n个根
这是功能:
double functions::rot(double x,double y) { double z = x; double w = 1; double e = 0.000001; while (z - w > e){ z = (z + w) / 2; w = x / z; } return z; }
y就是力量.有没有人有办法改变这个算法,所以y是根的力量?例如,如果y = 3,则采用立方根.
解决方法
def rot(x,y): # z = x w = 1 e = 0.000001 while (z - w > e): z = ((y - 1) * z + w) / y w = x / (z ** (y - 1)) # a ** b is a to the power of b in Python # you might want to use modular exponentiation in C++ # (or not if y is double...) return z print(rot(64,3)) # prints 4 print(rot(59,6)) # prints 1.9730678338673044
请参阅此处获取reference.我建议您阅读它,因为它提供了更深入的解释.
html – 选择一个类,其余的第3个;第n个孩子和第n个类型没用
问题是,在表达式中:
#installations > *:not(.selected):nth-of-type(-n+3),.selected
:nth-of-type()忽略:not()选择器,只选择#installation的前3个子对象.例如,如果我有这个HTML:
<div id="installations"> <div id="one"/> <div id="two"/> <div id="three"/> <div id="four"/> <div id="five"/> </div>
我只会有一个,两个,三个选择,而不是前四个.逻辑含义是:nth-type()将只有(1,2,4,5)才能选择,因为:not()已经排除了所选择的一个,因此选择(一,二,四)然后选择器的另一部分.selected将添加所选元素.
如果选择的不是前四个要素,那就说这是第六个,我们将选出前三个第六个元素.
澄清:选择.selected加3个相邻元素也很好.但是,我也很困难,如果选择在最后3个(如果我们选择接下来的3个相邻元素)
解决方法
经过一点修补,给出你的HTML和选择元素的条件,我想出了以下很长的选择器列表:
/* The first three children will always be selected at minimum */ #installations > div:nth-child(-n+3),/* Select .selected if it's not among the first three children */ #installations > div.selected,/* If .selected is among the first three children,select the fourth */ #installations > div.selected:nth-child(-n+3) ~ div:nth-child(4)
为了使其工作,必须做一个简单的假设:所选类只能一次出现在一个元素上.
您需要在同一条规则中组合所有三个选择器,才能匹配您要查找的四个元素.注意我的代码中的逗号.
Interactive jsFiddle demo(用于测试不同子元素中的类的选择器)
对于什么是值得的,如果你可以回到JavaScript,这更容易.举个例子,如果你使用jQuery,它的:lt()
selector使事情变得更简单一些:
// Apply styles using this selector instead: #installations > div.with-jquery $('#installations') .children('div.selected,div:not(.selected):lt(3)') .addClass('with-jquery');
Interactive jsFiddle demo(忽略这个演示中的JS代码,只是让它进行交互)
关于在int中找到第n个SET位和找到int需要char的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于AndroidStudio在signInReport中找不到第二个sha-1键、ASP.NET中继器模板,每第N个元素的条件代码、c – 将巴比伦平方根算法推广到第n个根、html – 选择一个类,其余的第3个;第n个孩子和第n个类型没用等相关内容,可以在本站寻找。
本文标签: