Binary 建议读取位/字节和执行操作的示例代码等

Binary 建议读取位/字节和执行操作的示例代码等,binary,byte,hex,Binary,Byte,Hex,需要复习位/字节、十六进制符号以及它与编程的关系(C#首选) 寻找一个好的阅读列表(最好在线)。位为1或0 一个字节是8位 十六进制中的每个字符是4位,表示为0-F 0000是0 0001是1 0010是2 0011是3 1110是E 1111是F 关于C#的咀嚼操作有一个非常好的介绍这里是一些基本的阅读: 位和字节几乎与C#无关,因为CLR自己处理内存。框架中也有处理十六进制符号和所有这些东西的类和方法。但是,这仍然是一个有趣的阅读。是一个很好的入门主题,在其他方面……把你从裸露的金属带

需要复习位/字节、十六进制符号以及它与编程的关系(C#首选)


寻找一个好的阅读列表(最好在线)。

位为1或0

一个字节是8位

十六进制中的每个字符是4位,表示为0-F

  • 0000是0
  • 0001是1
  • 0010是2
  • 0011是3
  • 1110是E
  • 1111是F

关于C#的咀嚼操作有一个非常好的介绍

这里是一些基本的阅读:


位和字节几乎与C#无关,因为CLR自己处理内存。框架中也有处理十六进制符号和所有这些东西的类和方法。但是,这仍然是一个有趣的阅读。

是一个很好的入门主题,在其他方面……把你从裸露的金属带到高阶语言。

这里有几个层要考虑:

  • 电子的
在电子范式中,一切都是一根电线

一根导线代表一个位

0为低电压,1为低电压 高电压。电压可以是
[0,5]、-3.3,3]、-5,5]、[0,1.3]
,, 关键的是,只有两个电压水平可以控制 晶体管的作用

一个字节是一组导线(准确地说,它可能是在一组称为寄存器的触发器中收集的,但现在让我们把它作为“导线”保留)

  • 程序设计
位是0或1

在现代系统中,一个字节是8位。古代系统可能有10位字节或其他大小;他们今天不存在

一个nybble是4位;半字节

十六进制是8位的有效表示形式。例如:F 映射到
1111111
。这比写15更有效。另外,如果您正在写多字节值,这是非常清楚的:FF是明确的;1515可以通过几种不同的方式读取

历史上也曾使用过八进制(基数8)。但是,我唯一遇到它的地方是Unix权限

因为在电子层,收集内存是最有效的 在2^n的组中,十六进制是表示 记忆。此外,如果您碰巧在驾驶员级别工作,您可以 需要专门控制一个给定的位,这将需要使用 位级运算符的定义。很明显,如果你说
F&outputByte
大于
15&outputByte

一般来说,许多现代编程不需要考虑自身 使用二进制和十六进制。然而,如果你在一个你 你需要知道,这是没有滑过-你真的需要知道 那好吧

需要二进制知识的特定领域包括:嵌入式 系统、驱动程序写入、操作系统写入、网络协议、, 和压缩算法

虽然您需要C#,但C#确实不是位级别的正确语言 操纵传统上,C和C++是用于BIT的语言。 工作Erlang与位操作一起工作,Perl也支持它 好。VHDL是完全面向位的,但工作起来相当困难 从典型编程的角度来看

下面是一些用于执行不同逻辑操作的示例C代码:

char a, b, c;  
c = a ^ b;      //XOR
c = a & b;      //AND
c = a | b;      //OR
c = ~(a & b);   //NOT AND(NAND)
c = ~a;         //NOT
c = a << 2;     //Left shift 2 places
c = a >> 2;     //Right shift 2 places.
字符a、b、c;
c=a^b//异或
c=a&b//及
c=a | b//或
c=~(a&b)//非和(NAND)
c=~a//不
c=a>2//右移2个位置。