在 C++ 中将 64 位值左移 64 位给出奇怪的结果[重复]

2024-05-06

可能的重复:
64位移位问题 https://stackoverflow.com/questions/1024968/64bit-shift-problem

我在 Windows 8 64 位上使用 Visual Studio 2012,在调试模式下以 x64 为目标,使用 AMD Phenom II。
所以基本上...

uint64_t Foo = 0xFFFFFFFFFFFFFFFF << 64;//Foo is now 0x0000000000000000
uint64_t Derp = 64;
uint64_t Bar = 0xFFFFFFFFFFFFFFFF << Derp;//Foo is now 0xFFFFFFFFFFFFFFFF

使用较低的值(例如 63)可以恢复正常行为。
为什么会发生这种情况?我该如何解决?

更新:我切换到发布模式。你瞧,问题消失了并且都返回了 0。但是问题仍然处于调试模式,这是我需要调试代码的地方。


如果移位的值大于或等于位宽,则移位操作具有未定义的行为。

来自 C++11 草案第 5.8 p1 节:

操作数应为整型或无作用域枚举类型,并执行整型提升。 结果的类型是提升后的左操作数的类型。如果正确的操作数,则行为未定义 为负数,或者大于或等于提升的左操作数的位长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中将 64 位值左移 64 位给出奇怪的结果[重复] 的相关文章

  • 在哪里使用 EF6 订阅 ObjectMaterialized?

    我正在尝试将我的上下文订阅到以下 OnjectMaterialized 事件this https stackoverflow com a 3756842 2835713 像这样 IObjectContextAdapter this Obje
  • 从 Dropbox C# 下载文件[重复]

    这个问题在这里已经有答案了 我正在尝试下载 Dropbox 中的 pdf 文件 我需要将其保存到本地计算机中 可以是任何文件夹C Users User Desktop例如 这是我一直在使用的代码 public void DownloadPd
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • ASP.NET Core 中 AsNoTracking 的模拟或更好的解决方法

    您如何模拟 AsNoTracking 或者是否有更好的解决方法来解决此问题 Example public class MyContext MyContextBase Constructor public MyContext DbContex
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • 如何(可移植地)在 C 和 C++ 中获取 DBL_EPSILON

    我正在 Linux AS 3 上使用 GCC 3 4 并试图找出DBL EPSILON 或者至少是一个不错的近似值 我怎样才能以编程方式获取它 在 C 中是std numeric limits
  • 对无符号 8 位整数进行左移操作 [重复]

    这个问题在这里已经有答案了 我试图理解 C C 中的移位运算符 但它们给我带来了困难 我有一个无符号 8 位整数 初始化为一个值 例如 1 uint8 t x 1 根据我的理解 它在内存中的表示方式如下 0 0 0 0 0 0 0 1 现在
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 为什么我在这段代码中不断得到两个相同的随机值? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我的随机数生成器在 C 中不是随机的 https stackoverflow com questions 932520 why does it appear that my random num
  • C++ 虚拟关键字与重写函数

    我正在学习c 并且正在学习virtual关键字 我在互联网上搜索试图理解它但无济于事 我进入编辑器并做了以下实验 期望它打印两次基本消息 因为我的印象是需要 virtual 关键字来覆盖函数 然而 它打印出了两条不同的消息 有人可以向我解释
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • C++ 中类型信息何时向后流动?

    我刚刚看了 Stephan T Lavavej 的演讲CppCon 2018关于 类模板参数推导 在哪里某个点 https youtu be H ut6j1BYU t 941他顺便说 在 C 中 类型信息几乎永远不会向后流动 我不得不说 几
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • 在标准 C 中将 int 转换为 string

    我是 C 新手 我正在寻找一个可以调用函数进行转换的示例int串起来 我发现itoa但这不是标准 C 的一部分 我还发现sprintf str d aInt 但问题是我不知道所需的 str 的大小 因此 我如何传递输出字符串的正确大小 有多
  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许

随机推荐

  • "$(document).on('pageshow'" 不适用于 jQuery 1.9.1 + JQM 1.3.0-stable

    使用 jQuery 1 8 3
  • 选项卡式导航

    我真的很难弄清楚如何执行以下操作 我想要有两个选项卡 水平相邻 一个用于搜索 并如此标记 另一个用于帖子 如此标记 当选择搜索选项卡时 我希望出现一个搜索框 当选择帖子选项卡时 我希望出现另一个搜索框 我不想隐藏搜索框 我猜它本质上是使用
  • 从 Json Python 获取特定字段值

    我有一个 JSON 文件 我想做的是获取这个特定字段 id 问题是当我使用json load input file 它说我的变量data是一个列表 而不是字典 所以我不能做类似的事情 for value in data id print d
  • Jquery 事件处理程序返回值

    返回值有什么用处吗 click and change 处理程序 如return true or return false return false 将阻止事件冒泡AND抑制默认操作 换句话说 返回 false 类似于这两行 event st
  • 获取已连接 USB 设备的端口名称

    当USB设备连接到计算机时 如何使用C 代码获取它所连接的端口名称 我找到了很多方法来查找 USB 何时连接 断开 驱动器号 路径 设备 ID 等 但没有找到任何明确的示例来说明如何知道它连接到哪个端口 我看到了一种可能的解释 但这涉及很多
  • MbUnit v3 中的UsingFactories 替代方案

    我试图弄清楚如何在 MbUnit v3 中编写组合测试 网上的所有示例代码均参考MbUnit v2 这意味着使用3个属性 组合测试 Factory 使用工厂 在 MbUnit v3 中 没有 usingFactories 属性 并且 Fac
  • 删除networkx有向图中入度和出度等于1的所有节点

    假设我在 NetworkX 中制作了一个有向图 import networkx as nx G nx DiGraph n A B C D E F H I J K L X Y Z e A Z Z B B Y Y C C G G H G I I
  • 算法:最大计数器

    我有以下问题 您有 N 个计数器 最初设置为 0 并且您对它们有两种可能的操作 increase X 计数器 X 加 1 max counter 所有计数器都设置为任何计数器的最大值 给出一个包含 M 个整数的非空零索引数组 A 该数组代表
  • 修改 Android 可绘制对象的颜色

    我希望能够使用相同的可绘制对象来表示两者 and 作为相同的可绘制对象 并根据某些编程值重新为可绘制对象着色 以便最终用户可以重新主题化界面 做这个的最好方式是什么 我已经尝试过 并重复使用了其中的图标 这个以前的S O 问题 https
  • SecurityApplicationGroupIdentifier 的应用程序组返回 nil

    我设置了一个应用程序组与我的 Today Extension 一起使用 我在主应用程序的目标和扩展程序的目标中添加了应用程序组 在开发人员门户的应用程序 ID 配置中 我启用了应用程序组 但由于某种原因FileManager default
  • 在 IEnumerable 上使用 Seq 函数 [重复]

    这个问题在这里已经有答案了 我正在尝试在 IEnumerable 上应用 Seq 函数 更具体地说 它是System Windows Forms HtmlElementCollection它实现了ICollection and IEnume
  • 加速度计和校准 - iPhone SDK

    我需要在 iPhone 游戏中使用加速计的功能 我只需通过倾斜设备来移动图像即可 然而 YouTube 上的大多数视频仅显示以某种方式反转的倾斜功能 而忘记包含校准 我希望用户将他们的设备校准到他们所处的任何位置 有谁知道我应该如何开始 我
  • 如何编写简单的运动跟踪代码?

    我正在制作一个带有伺服系统和彩弹枪的哨兵炮塔 需要实现实时运动跟踪以使枪射击任何移动的东西 我该如何编码 任何好的算法 书籍 教程 我想自己制作而不是使用预制的解决方案 带有卡尔曼滤波的 Lucas Kanade 是最基本的运动跟踪算法 然
  • 如何在 Vue 中动态创建的组件上获取更新的 $refs?

    我的组件数量取决于数组数量 因此当我向数组添加新项目时 它应该创建新组件 当创建新组件时 我想获得它的参考 这就是我有误解的地方 最后添加的组件是undefined当我试图得到它时 但是 如果我在一段时间后尝试获取参考 它就会起作用 我猜这
  • 添加动态复选框处理 CheckedChanged 事件 ASP.NET

    我想知道为什么事件没有触发以及如何找到哪个复选框控件触发了事件 chkList1 new CheckBox chkList1 Text row subj nme ToString chkList1 ID row subjid ToStrin
  • 如何在android中向服务器发送数据[重复]

    这个问题在这里已经有答案了 我想在我的应用程序中循环发送纬度和经度 这是使用 GPS 获取此参数的函数 private void showLocation Location location String latitude Latitude
  • C# 中的异常转换

    为什么我会得到一个InvalidCastException当尝试这样做时 throw ArgumentNullException new Exception errormessage null 这是以下函数的简化版本 public stat
  • 如何删除字符串中的所有前导零

    如果我有一个字符串 00020300504 00000234892839 000239074 我怎样才能去掉前导零 这样我就只有这个 20300504 234892839 239074 请注意 上面的数字是随机生成的 ltrim http
  • 为什么 VectorBuilder 位于 scala.collections.immutable 包中?

    VectorBuilder在同一源文件中定义为Vector Vector是不可变的并且在scala collections immutable包 因此构建器位于同一个包中 据我所知 CanBuildFrom uses a VectorBui
  • 在 C++ 中将 64 位值左移 64 位给出奇怪的结果[重复]

    这个问题在这里已经有答案了 可能的重复 64位移位问题 https stackoverflow com questions 1024968 64bit shift problem 我在 Windows 8 64 位上使用 Visual St