c - 如何按位切断无符号长整数中的第一位?
问题描述
我有m = 0x401e000000000000
,我想得到f = 0xe000000000000
。使用按位运算符,我将如何在 C 中做到这一点?我用了
f = (m & 0xFFFFFFFFFFFFF);
但我只得到0。
解决方案
在IDEOne中运行时,它可以工作
#include <stdio.h>
int main(void) {
unsigned long m = 0x401e000000000000;
unsigned long f = m & (0xFFFFFFFFFFFFF); // Expect value = 0xe000000000000.
printf("Result f = 0x%0lX\n", f);
return 0;
}
输出
Success #stdin #stdout 0s 5416KB
Result f = 0xE000000000000
推荐阅读
- python - 静态文件的路由问题
- ios - 为什么我不想启用可测试性
- html - 我在页面上的图像做错了什么?
- linux - 如何用以某个数字开头的数字替换文件名?
- javascript - javascript: applyForce 函数错误
- html - Css从普通到粗体时相同的文本自动换行
- java - MediaException:从导出的 JAR 文件运行项目时 MEDIA_UNAVAILABLE
- objective-c - 在调用函数之前检查类目标成员资格
- swift - 可编码错误 - 预计解码字典
但找到了一个数组 - mysql - 尽管已设置密码并在连接 uri 中输入密码,但用户 root@localhost 的 mysql 访问被拒绝(使用密码:否)