- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的代码在 C 中有一个按位移位的问题,我归结为以下示例:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
int main(int argc, char **argv)
{
char a = 1;
int i=0;
uint64_t b;
for(i=0; i<64; i++)
{
b=0;
printf("i=%d\n", i);
b = (a<< ((uint64_t) i));
printf("%" PRIu64 "\n", b);
}
return 0;
}
由于在此 MWE 中不明显的原因,a
是一个 char
,我想从中生成 2 的幂,直到 2^63。它失败了,因为发生了一些奇怪的事情,因为 a
不是 uint64_t
。明显的修复是
b = ((uint64_t)a<< ((uint64_t) i))
为了理解到底发生了什么,我写了上面的 MWE 示例,我从中获得了输出(部分显示):
i=30
1073741824
i=31
18446744071562067968
i=32
1
i=33
2
现在我想知道如何解释从 i=30
到 i=31
的跳转?它是如何在 i=32
处再次变为 1 的?
如果有兴趣,我用gcc (gcc (SUSE Linux) 4.8.5
)编译了上面的代码
最佳答案
此处出现的(有点出乎意料的)规则是,当涉及到 <<
时,
the type of the result is that of the promoted left operand
这意味着 a << (uint64_t) i
的类型是一个 int
, 作为 char
输入 a
自动加宽为 int
.
看来您的 int
是一个 32 位 2 的补码类型。因此对于 i
大于或等于 31,表达式的行为是未定义。
关于c - 理解太小类型的移位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48542911/
这是代码: from Tkinter import * def main(): w1 = Tk() w1["height"] = 400; w1["width"] = 500;
我想问一下 scrollView 中 imageView 的布局问题。但是,显示出来的图像非常非常小。即使是 1024 * 1024 px 图片也无法完全占据普通手机的整个屏幕宽度。 如何修改它使得对
我发现我的某个应用程序的启动器图标太小了。该设备是 samsung nexus galaxy,因此它应该使用 mdpi 文件夹中的可绘制对象。 我希望图标大小为 72 x 72 像素。其实这个图标看起
我一直想知道:ptrdiff_t 是否应该能够保存任意两个指针的差异定义?两个指针太远怎么会失败? (我不是指任何特定的语言...我指的是所有具有这种类型的语言。) (例如,当您有 32 位指针时,从
我有一个 QAbstractItemDelegate 并且在 paint 方法中,我试图从标签中绘制文本。但我看到的问题是 QLabel 的大小提示对于它包含的文本来说总是太小。我怎样才能解决这个问题
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我的程序使用 wx.ProgressDialog对多个阶段的流程提供反馈。在每个阶段开始时,我使用 Update 的第二个参数来更改对话框中的消息。 问题在于对话框的宽度是根据构造函数中的消息确定的,
我有一个动态数据数组,其中包含 3 个用于构建饼图的整数。在大多数情况下,IE 运行良好:[5,10,3]。饼图渲染正确,您可以看到所有部分。 但是在某些情况下,数字可能相差很大。即 [1,500,2
我有一个长度为 28 的字符串,它代表基数 16 中的 1 个数字。 long num=strtol(str,NULL,16); 但它适用于小字符串而不是长字符串(它给了我一个否定的结果)。那么对于长
我正在编写一个 PhoneGap 应用程序并使用 Twitter 的 Bootstrap 进行响应式设计。 校园/帐户/部门的框是选择框。我认为很明显的问题是选择框很小,当我在 css 中尝试时无法更
我正在使用这段代码来显示 UIAlert,它将询问简单的输入 UIAlertController *alert = [UIAlertController alertControllerWithTitl
我有一个带复选框的 HTML 公式列表。所有复选框都有一个标签。 我正在使用 flexbox 设计这个公式。使用 flexbox 使其中一个复选框比其他所有复选框都小。原因似乎是该复选框的标签文本太长
我正在这里处理一些 javascript svg 图形,我发现我真的不能依赖 Firefox 上 window.innerHeight(或outerHeight)的值。我正在运行 Ubuntu 12.
单击左侧边栏中的图像 http://vaiman.org/我们的 YouTube 盒子太小了。我需要扩大 YouTube 区域。怎么办? 这是我的 JavaScript 代码 ( http://vai
我有一个视频 View 来流式传输视频,它工作正常但视频的大小太小,我尝试在 API 演示中进行流式传输并且同一视频的大小是正常的。我做错了什么?这是一些代码: main.xml:
我发现 Android Studio (v1.0.1) 布局“设计” View 太小而无用 - 我几乎看不到一些元素。 “缩放”按钮仅显示布局的一小部分。有没有办法分离 View 以便我可以放大它?
嘿,我正在使用 HTML 标签,当我在 Safari 中打开页面时,视频播放器非常小。 如果我启用全屏然后返回,它会正确聚焦。 我不确定是什么原因导致它最初加载不正确。 HTML代码:
我在 UIPopoverController 中显示了一个 UIPickerView。 UIPickerView 的尺寸为:320x216。出于某种原因,UIPickerView 似乎是正常高度的 3
当我给 matplotlib 一个注释字符串时,例如 '$\frac{A}{B} = C$' 我指定字体大小为 18,A 和 B 以 12.6 pt 呈现,而 C 以 18 pt 呈现。我希望 A、B
我有一个条形图,不知何故,整个 svg 容器只是矩形以及落在矩形所在区域的所有内容,因此 y 轴刻度被留在容器之外。我怎样才能解决这个问题,以便顶部的文本和 y 轴刻度(图像)不会留在外面。 我的代码
我是一名优秀的程序员,十分优秀!