Я пытаюсь написать самое большое значение int64 в командной строке. Я попытался использовать 0x1111111111111111
, который является 16, и визуальная студия говорит, что это int64. Я бы предположил, что это будет int16. Что здесь пропало?Int64 кажется слишком коротким в C#
ответ
0x
является префиксом для шестнадцатеричных, а не бинарных литералов. Это означает, что бинарное представление вашего номера является 0001000100010001000100010001000100010001000100010001000100010001
Там нет, к сожалению, нет бинарных литералов в C#, так что вы должны либо сделать расчет самостоятельно (0xFFFFFFFFFFFFFFFF
) или использовать Convert
класс, например:
short s = Convert.ToInt16("1111111111111111", 2); // "2" for binary
для того, чтобы просто получить наибольший Int64 номера, вам не нужно выполнять какие-либо расчеты самостоятельно, так как он уже доступен для вас в этой области:
Int64.MaxValue
Вы забыли о дополнении 2 и подписали против беззнакового. Int64.MaxValue на самом деле '0x7FFFFFFFFFFFFFFF'. –
Наибольшее значение Int64 - Int64.MaxValue. Для того, чтобы напечатать это в шестнадцатеричном, попробуйте:
Console.WriteLine(Int64.MaxValue.ToString("X"));
Буквальный 0x1111111111111111
является шестнадцатеричным числом. Каждая шестнадцатеричная цифра может быть представлена четырьмя битами, так что 16 шестнадцатеричных цифр вам нужно 4 * 16 = 64 бит. Вероятно, вы намеревались написать двоичный номер 1111111111111111
. Вы можете преобразовать из двоичной символьной строки в целое число, используя следующий код:
Convert.ToInt16("1111111111111111", 2)
Это будет возвращать нужное число (-1).
Чтобы получить самый большой Int64
вы можете использовать Int64.MaxValue
(0x7FFFFFFFFFFFFFFF
) или, если вы действительно хотите беззнаковое значение, которое вы можете использовать UInt64.MaxValue
(0xFFFFFFFFFFFFFFFF
).
- 1. fortran Int64 Integer слишком большой
- 2. VBS сообщение, если значение является слишком длинным или слишком коротким
- 3. SKPhysicsBody кажется слишком большим
- 4. JFrame кажется слишком маленьким
- 5. Sample App кажется слишком быть слишком сложным
- 6. C# преобразование int в Int64
- 7. вычисления int64 времени в C++
- 8. Как использовать Int64 в C#
- 9. wxHaskell: окно кажется слишком маленьким
- 10. Сравнение вставки # кажется слишком большим
- 11. Кажется, что слишком много мероприятий
- 12. Операция с коротким int C#
- 13. Android EditText в AlertDialog кажется слишком широким
- 14. Почему UIView в iOS/кажется слишком высоким?
- 15. Unsigned int64 C++ to Java
- 16. C++ int64 * double == выключен одним
- 17. конвертировать int64 в float32 в c
- 18. Преобразование Java long в int64 в C++
- 19. Как сравнить Int64 Int64 с
- 20. Мой код, кажется, слишком быстро запускается
- 21. Насколько коротким должна быть функция?
- 22. Размер файлов AVI кажется слишком большим
- 23. Перегрузка символа с коротким
- 24. Хранение Int64 в UserDefaults
- 25. переполнения в быстрой (Int64)
- 26. Недостатки использования Int64 универсально вместо int (C#)
- 27. C# - Создание одного Int64 из двух Int32s
- 28. C# MySqlConnector 6.4.4 LAST_INSERT_ID() Как INT64?
- 29. Преобразование строки Golang в int64
- 30. Как объявить константу Int64?
Этот формат представляет собой шестнадцатеричное число. Каждая цифра - * четыре * бита, а не одна. –
Вам не хватает 0xFF ... FF, и вы также игнорируете подписанный/неподписанный –
, или вы также можете попробовать Int64.MaxValue –