Я посмотрел реализацию DateTime Equals:
public bool Equals(DateTime value)
{
return (this.InternalTicks == value.InternalTicks);
}
а затем посмотрите на innerticks
internal long InternalTicks
{
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get
{
return (((long) this.dateData) & 0x3fffffffffffffffL);
}
}
И затем я заметил это число: 0x3fffffffffffffffL
который: 4611686018427387903
Но более интересным является его двоичное представление:
00111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
^^
||
Обратите внимание на стрелки
Я мог бы понять, была ли только стрелка влево 0
(положительное представление)
-
Но почему второй тоже
0
? -
Кроме того, почему я хотел бы, чтобы он был
&
с номером1111....
? если я хочу отобразить5
, мне не нужно делать5 & 1
, всего 5.
Любая помощь?