【发布时间】:2010-12-01 23:41:18
【问题描述】:
如果你有一些变量(在堆栈上)并且你左移或右移超出了它的末尾会发生什么?
即
byte x = 1;
x >> N;
如果 x 是一个指向内存转换为字节的指针,而你做同样的事情呢?
byte* x = obtain pointer from somewhere;
*x = 1;
*x >> N;
【问题讨论】:
-
反问:如果您希望该内存位置的位在下一个位置移动,接下来会发生什么?这是否意味着来自下一个存储位置的位将进一步移位?有了这个逻辑,所有的内存都会被转移。你不认为它必须停在某个地方吗?
-
那么真正的问题是,在内存空间边缘的第一个和最后一个位会发生什么。 ;)
-
@jalf:至少有两个平行宇宙是没有问题的。
标签: c++ c bit-manipulation