检查给定整数是否为负的一种方法可能是:( 使用位操作)
int num_bits = sizeof(int) * 8; //assuming 8 bits per byte!
int sign_bit = given_int & (1 << (num_bits-1)); //sign_bit is either 1 or 0
if ( sign_bit )
{
cout << "given integer is negative"<<endl;
}
else
{
cout << "given integer is positive"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
该解决方案的问题是每字节的比特数不能是8,它可以是每个字节9,10,11甚至16或40比特.字节不一定意味着8位!无论如何,这个问题可以通过写作轻松解决,
//CHAR_BIT is defined in limits.h
int num_bits = sizeof(int) * CHAR_BIT; //no assumption.
Run Code Online (Sandbox Code Playgroud)
现在好像很好.但它真的吗?这个标准符合吗?如果负整数不表示为2的补码怎么办?如果它是代表一个二进制记数系统,不必要只负整数有1个在它的最显著位?
我们可以编写既可移植又符合标准的代码?
相关主题:
原始数据类型的大小
为什么布尔1字节而不是1位大小?
只是一个一般性问题,移动文件和剪切/复制/粘贴操作有什么区别?我的意思是至少就底层操作系统而言。每次操作中文件的属性会发生什么变化?我只是好奇。
我发现了很多 MinMax Heap 实现,它们将数据存储在数组中。它真的很容易实现,这就是我正在寻找不同的东西的方式。我想仅使用堆的元素以及指向左子节点和右子节点的指针(当然还有一个要比较的键)来创建一个 MinMax 堆。因此,堆只有指向根对象(最小级别)的指针,而根对象有一个指向其子对象(最大级别)的指针,依此类推。我知道如何插入一个新对象(根据堆大小使用 int 的二进制表示找到正确的路径),但我不知道如何实现其余部分(向上(向下)元素,找到父级或祖级) 。
谢谢帮助
我有点害怕问这个因为害怕报复"你无法用正则表达式解析HTML"邪教.为什么不re.subn(r'<(script).*?</\1>', '', data, re.DOTALL)删除多行"脚本",但最后只删除两个单行"脚本"?
谢谢,HC
>>> import re
>>> data = """\
<nothtml>
<head>
<title>Regular Expression HOWTO — Python v2.7.1 documentation</title>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.7.1',
COLLAPSE_MODINDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
"""
>>> print (re.subn(r'<(script).*?</\1>', '', data, re.DOTALL)[0])
<nothtml>
<head>
<title>Regular Expression HOWTO — Python v2.7.1 documentation</title>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.7.1',
COLLAPSE_MODINDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
}; …Run Code Online (Sandbox Code Playgroud) 我有一个ArrayList中的项集合.我将它们添加到客户适配器,如下所示:
this.m_adapter = new MyAdapter(this, R.layout.myitem,
itemCart.m_items);
Run Code Online (Sandbox Code Playgroud)
我的列表中的每个项目都有一个删除按钮,但我不知道如何将删除按钮onClick()与ArrayList中的原始项目连接.有人可以解释如何做到这一点或指向我的教程,我可以阅读这个?非讽刺/非居高临下的回应非常感谢.
还有一个类似的问题在这里.
我有以下结构:
struct SimpleXY
{
double x;
double y;
};
struct SimpleEdge
{
SimpleXY first;
SimpleXY second;
}
struct SimpleEdgeList
{
uint num_edges;
SimpleEdge *SimpleEdges;
};
Run Code Online (Sandbox Code Playgroud)
什么是释放记忆的正确方法SimpleEdgeList?这是我目前的方法,但我想知道我是否应该手动释放first和second数据字段.
void Free(SimpleEdgeList *myList)
{
free(myList->SimpleEdges);
}
Run Code Online (Sandbox Code Playgroud)
这是一个C结构,我正在寻找像C一样的内存释放.
我管理一个托管在Yahoo!上的网站 托管,最近显示了一个奇怪的行为:当您在IE8中访问时,页面加载并正常呈现,然后一旦完成呈现,浏览器就会切换到显示其本地/内部404页面.地址栏仍显示网站网址.
当我在我的本地Apache服务器上查看该网站(据我所知)相同的状态时,它不会这样做.这让我怀疑它可能与服务器配置和响应头有关,但我不知道那可能是什么.
有人熟悉这种行为吗?
面对PHP unserialize()功能的问题,标题是抛出错误.
unserialize() [function.unserialize]: Error at offset 0 of 1781 bytes
Run Code Online (Sandbox Code Playgroud)
我也试过了session_decode()哪个回归bool(false)
magic_quotes_gpc是Off.
好吧,我正在阅读序列化的文件内容.文件内容如下所示.
芯|一个:3:{S:23: "_ session_validator_data";一个:4:{S:11: "REMOTE_ADDR"; S:15: "117.241.113.248"; S:8: "HTTP_VIA"; S:0: ""; s:20:"http_x_forwarded_for"; s:0:""; s:15:"http_user_agent"; s:90:"Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9 .2.13)Gecko/20101203 Firefox/3.6.13";} s:13:"session_hosts"; a:1:{s:12:""; b:1;} s:8:"messages"; O:34 : "Mage_Core_Model_Message_Collection":2:{S:12: "^ @*^ @ _信息";一个:0:{} S:20: "^ @*^ @ _ lastAddedMessage"; N;}}客户|一个:3: {S:23: "_ session_validator_data";一个:4:{S:11: "REMOTE_ADDR"; S:15: "117.241.113.248"; S:8: "HTTP_VIA"; S:0: "",S:20 :"http_x_forwarded_for"; s:0:""; s:15:"http_user_agent"; s:90:"Mozilla/5.0(Windows; U; Windows NT 5.1; …
对于我的应用程序的 Windows 版本,我使用 WM_INPUT 并直接注册鼠标设备以获得最精确的移动。我该如何在 X11 中做到这一点?