c# - 如何按位操作十六进制值?

标签 c# bitwise-operators hex

我对按位运算符有非常基本的了解。但是,我不知道如何分配该值。如果有人能指出正确的方向,我将不胜感激。

我的十六进制地址:0xE0074000

十进制值:3758571520

二进制值:11100000000001110100000000000000

我正在尝试编写一个简单的微 Controller 并使用 Microsoft .Net 微框架中的注册访问类来使 Controller 执行我希望它执行的操作。

Register T2IR = new Register(0xE0074000);
T2IR.Write(1 << 22);

在我上面的例子中,二进制表示中的位是如何移动的?我不明白位的管理是如何分配给二进制形式的地址的。

如果有人能给我指出正确的方向,我会非常感激。

最佳答案

首先忘记小数。稍后你会回到那个。

首先您需要了解 HEX 和 BINARY 之间的逻辑。

好的,一个字节有 8 位 (#7-0)

#7 = 0x80 = %1000 0000
#6 = 0x40 = %0100 0000
#5 = 0x20 = %0010 0000
#4 = 0x10 = %0001 0000

#3 = 0x08 = %0000 1000
#2 = 0x04 = %0000 0100
#1 = 0x02 = %0000 0010
#0 = 0x01 = %0000 0001

当你以二进制形式读取它时,以一个字节为单位,比如这个 %00001000

然后设置的位是从右数第 4 个位,即位 #3,其值为 08 十六进制(实际上也是十进制,但在计算十六进制/二进制时仍然忘记十进制)

现在如果我们有二进制数 %10000000 这是打开的#7 位。其十六进制值为 0x80

所以你所要做的就是用“半字节”来总结它们(十六进制字节的每一部分被一些极客称为半字节)

半字节的最大值是(十进制)15 或 F 为 0x10 + 0x20 + 0x40 + 0x80 = 0xF0 = 二进制 %11110000

所以半字节中的所有灯(4 位)= 十六进制的 F(十进制的 15)

低半字节也是如此。

你看到这个模式了吗?

关于c# - 如何按位操作十六进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10972850/

相关文章:

java - 了解 SWT 常量的按位或

c++ - 将前导为 "0x"的十六进制字符串转换为 C++ 中的有符号短字符串?

c# - 在未能使用网络级身份验证向远程桌面服务器提供正确凭据后防止登录尝试失败窗口

c# - 如何扩展类型类

c# - 记录 ASP.NET Core 中的配置更改

Java 负整数转十六进制并返回失败

Python 十六进制解码器

Java 相当于 C# 泛型数组声明?

c# - 有人可以解释这些示例中的 & 运算符吗?

java - 如何计算存储 N 位所需的 long(64 位)数?