How to print (using cout) a number in binary form?
I’m following a college course about operating systems and we’re learning how to convert from binary to hexadecimal, decimal to hexadecimal, etc. and today we just learned how signed/unsigned numbers are stored in memory using the two’s complement (
We have a couple of exercises to do on paper and I would like to be able to verify my answers before submitting my work to the teacher. I wrote a C++ program for the first few exercises but now I’m stuck as to how I could verify my answer with the following problem:
and we need to show the binary representation in memory of a , b and c .
I’ve done it on paper and it gives me the following results (all the binary representations in memory of the numbers after the two’s complement):
a = 00111010 (it’s a char, so 1 byte)
b = 00001000 (it’s a char, so 1 byte)
c = 11111110 11000101 (it’s a short, so 2 bytes)
Is there a way to verify my answer? Is there a standard way in C++ to show the binary representation in memory of a number, or do I have to code each step myself (calculate the two’s complement and then convert to binary)? I know the latter wouldn’t take so long but I’m curious as to if there is a standard way to do so.
Русские Блоги
Запись и вывод двоичных, восьмеричных, шестнадцатеричных целых чисел на языке C
Каталог статей
Целое число — это обычно используемый тип данных в нашей жизни, а также данные, часто используемые в программировании. В языке C ключевое слово int используется для определения целочисленных переменных (int — это сокращение от целого числа).
При определении переменных вы можете добавить четыре модификатора: подписанный, беззнаковый, короткий и длинный.
signed: Со знаком, может представлять положительные и отрицательные числа.
unsigned: Без знака, может представлять только положительные числа, такие как нижний индекс массива, рост человека и т. Д.
short: Короче говоря, в современных 64-разрядных операционных системах целые числа занимают 4 байта памяти, используя 4 байта.
байтов более чем достаточно для хранения меньших целых чисел, и два байта будут свободными, а эти байты будут потрачены впустую. В первые дни, когда был изобретен язык C, или в микроконтроллерах и встраиваемых системах, память была очень ограниченным ресурсом, и все программы пытались максимально экономить память.
long: Длинное целое число.
1. Запись двоичных, восьмеричных и шестнадцатеричных целых чисел.
По умолчанию число является десятичным, что означает, что десятичное число не требует специального формата. Однако представление двоичного, восьмеричного или шестнадцатеричного числа отличается от представления десятичного числа. Чтобы отличить его от десятичного числа, необходимо использовать особый способ записи. В частности, перед числом нужно добавить определенный символ, который является префиксом. .
1. Двоичный
Двоичный состоит из двух чисел, 0 и 1, которые при использовании должны начинаться с 0b или 0B (без учета регистра).
Ниже приведены допустимые двоичные файлы:
Следующие файлы являются недопустимыми:
Обратите внимание, что стандартный язык C не поддерживает указанную выше двоичную нотацию, но некоторые компиляторы расширили себя для поддержки двоичных чисел. Другими словами, не все компиляторы поддерживают двоичные числа, только некоторые компиляторы поддерживают это, и это связано с версией компилятора.
2. Восьмеричный
Восьмеричная система состоит из восьми цифр от 0 до 7 и должна начинаться с 0 при использовании (обратите внимание, что это число 0, а не буква o).
Ниже приведены допустимые восьмеричные числа:
Следующие восьмеричные числа недопустимы:
3. Шестнадцатеричный
Шестнадцатеричная система состоит из чисел 0
f (без учета регистра) и должна начинаться с 0x или 0X (без учета регистра) при использовании.
Ниже приведены допустимые шестнадцатеричные числа:
Следующие шестнадцатеричные числа являются недопустимыми:
4. Яма, чтобы обратить внимание на
В реальной жизни и на работе, когда мы пишем десятичные числа, для выравнивания или по другим причинам, добавление 0 перед значением не имеет значения. Однако на языке C не добавляйте 0 перед десятичным числом, это будет ошибочно компьютер — это восьмеричное число.
Два, двоичный, восьмеричный, шестнадцатеричный целочисленный вывод
В следующей таблице представлен формат вывода различных шестнадцатеричных целых чисел. 
Внимательные читатели могут обнаружить, что в приведенной выше таблице нет двоичного формата вывода.Хотя некоторые компиляторы поддерживают запись двоичных чисел, они не могут использовать функцию printf для вывода двоичных чисел. Вы можете написать функцию для преобразования других шестнадцатеричных чисел в двоичные числа и сохранить их в строке, а затем использовать% s для вывода в функции printf.
Пример:
Четыре, заявление об авторских правах
Оригинальная статья из C Language Technology Network. Укажите источник, автора и ссылку на исходную статью для перепечатки.
Источник: C Language Technology Network (www.freecplus.net)
Автор: Кодекс этики сельского хозяйства
Если эта статья полезна для вас, пожалуйста, поддержите ее или перепубликуйте эту статью в своем блоге, чтобы ее увидело больше людей, спасибо! ! !
Интеллектуальная рекомендация
Реализация JavaScript Hashtable
причина Недавно я смотрю на «Структуру данных и алгоритм — JavaScript», затем перейдите в NPMJS.ORG для поиска, я хочу найти подходящую ссылку на библиотеку и записывать его, я могу исполь.
MySQL общие операции
jdbc Транзакция: транзакция, truncate SQL заявление Transaction 100 000 хранимая процедура mysql msyql> -определить новый терминатор,Пробелов нет mysql>delimiter // mysql> -создание хранимой .
Используйте Ansible для установки и развертывания TiDB
жизненный опыт TiDB — это распределенная база данных. Настраивать и устанавливать службы на нескольких узлах по отдельности довольно сложно. Чтобы упростить работу и облегчить управление, рекомендуетс.
Последняя версия в 2019 году: использование nvm под Windows для переключения между несколькими версиями Node.js.
С использованием различных интерфейсных сред вы можете переключаться между разными версиями в любое время для разработки. Например, развитие 2018 года основано наNode.js 7x версия разработана. Тебе эт.
![]()
Шаблон проектирования — Создать тип — Заводской шаблон
Заводская модель фабрикиPattern Решать проблему: Решен вопрос, какой интерфейс использовать принципСоздайте интерфейс объекта, класс фабрики которого реализуется его подклассом, чтобы процесс создания.
Печатать двоичное представление числа — C, C++, Java и Python
Печатайте двоичное представление заданного числа в C, C++, Java и Python, используя встроенные методы и пользовательские процедуры.
Input: 20
Output: 00000000000000000000000000010100
Input: 64
Output: 00000000000000000000000001000000
Input: 127
Output: 00000000000000000000000001111111
Input: -1
Output: 11111111111111111111111111111111
1. Итеративное решение
Идея состоит в том, чтобы проверить, если i’th бит устанавливается для каждой позиции i в данном целом n . Если i’th бит установлен для позиции i в целом n , затем установите i’th бит в 1 в двоичном представлении n ; иначе 0. i находится в диапазоне от 0 до 31 для 32-битного целого числа.
Выражение 1 дает число, которое имеет только i’th набор бит. Если мы делаем побитовое AND этого выражения с любым числом n , т.е. n & (1 , ненулевое значение указывает, что его i’th бит установлен для числа n . Например, рассмотрим n = 20 а также i = 3 . Результатом является ненулевое значение, которое указывает на то, что 3rd бит установлен для целого числа 20.