Учитывая этот код, который выводит все биты в целое число:
private string getBitLiteral(bool bitVal)
{
if (bitVal)
{
return ("1");
}
else
{
return ("0");
}
}
Int64 intThisHand = 127;
for (int i = 64; i > 0; i--)
{
HttpContext.Current.Response.Write(
getBitLiteral((intThisHand & (1 << i)) != 0)
);
}
Почему он печатает:
1000000000000000000000000011111110000000000000000000000000111111
Во-первыхправильно ли я зациклен, так как я ожидаю, что последние 7 цифр равны 1
Во-вторых, почему в середине есть 1?Я бы ожидал, что все они будут равны 0, кроме завершающих 7 1.