3 / 3 / 0
Регистрация: 07.11.2018
Сообщений: 119

С какой стороны 1 байт в двочной системе?

11.05.2019, 13:02. Показов 6925. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С какой стороны 1 байт в двочной системе?
Справо или с лево?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2019, 13:02
Ответы с готовыми решениями:

Почему на указатель в 64-разрядной системе выделяется 8 байт памяти, а в 32-разрядной системе - 4 байта?
Здравствуйте! Почему на указатель в 64-разрядной системе выделяется 8 байт памяти, а в 32-разрядной системе - 4 байта? С чем связано...

Найти с какой стороны цикл будет находить 0 скорее и на какой позиции он стоит
Дан целочисленный массив а, который состоит из десяти чисел(от 0 до 9) и заполняется рандомно. Нужно найти с какой стороны цикл будет...

Массив байт должен хранить строку и цифры. Передача по удп в обе стороны
Задача такая, нужно написать программу, которая бы реализовывала простой, однострочный редактор. Как я хочу реализовать: 1....

29
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
12.05.2019, 15:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bedvit Посмотреть сообщение
Но в память (оперативную, HD) все же пишутся биты, хоть и блоками побайтно (перешли на байты, из-за экономии ресурсов и т.д.). И они каким-либо образом располагаются, верно (биты)? Расположение от чего-то зависит?
Если ты говоришь о языке программирования, то минимальная единица, которая пишется в память - это байт. В том смысле, что на уровне программы ты можешь записать по адресу 0, по адресу 1 и т.п. Получается так, что байт - это некая абстракция, которая инкапсулирует внутри себя 8 бит. Абстракцию позволено только прочитать или записать целиком. Как ориентированы биты внутри байта - это детали реализации, спрятанные внутри абстракции, и при этом нету интерфейсов для того, чтобы прочитать бит номер 0, бит номер 1 и т.п. Операции чтения и записи байтов имеют интерфейсное соглашение, что они оперируют значением, которое состоит из 8 бит и в записи этого значения старшие биты печатаются слева. Т.е. когда ты читаешь байт, то получаешь на руках не 8 отдельных битов, а некое значение, в котором эти биты ориентированы в определённом порядке. А если посмотреть на реальное внутреннее устройство байта, то там может быть значения отдельных битов расположены снизу вверх, или по диагонали, или в узлах куба. Т.е. в том, как реально расположены биты внутри памяти, нету таких понятий как "слева" или "справа"

Так понятно?

Цитата Сообщение от bedvit Посмотреть сообщение
Код выдает именно это
А... ты это имел в виду
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
12.05.2019, 15:41
Evg, нормально устаканил, говорят же 10 минут разговора со знающим человеком, заменят год учения в одиночку. или тип того
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
12.05.2019, 15:47
Программу лучше бы переписать вот так:

C
#include <stdio.h>
 
int a = 0x002233ff;
 
int main (void)
{
  int n;
 
  /* Печать отдельных байтов
   * Результат зависит от endian'а */
  for (n = 0; n < sizeof (a); n++)
    printf ("%x ", ((unsigned char*)&a)[n]);
  printf ("\n");
 
  /* Печать отдельных битов
  /* Результат НЕ зависит от endian'а */
  for (n = 0; n < (8 * sizeof (a)); n++)
    printf ("%d ", (a >> n) & 1);
  printf ("\n");
 
  return 0;
}
Code
# intel (little endian)
$ ./a.out
ff 33 22 0
1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Code
# sparc (big endian)
$ ./a.out
0 22 33 ff
1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от _stanislav Посмотреть сообщение
Evg, нормально устаканил
Ну хоть кто-то понял, значит не зря надрывался

0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
12.05.2019, 15:53
Evg, с абстракцией понятно (примерно все так и представляю).
В итоге ответ в посту 8 - "Порядок от младшего к старшему" верен, в нем есть смысл, если я работаю с байтом в коде, и я правлю в нем отдельные биты.
Т.е. ответ по теме - "Порядок от младшего к старшему", т.е. байт инициированный десятичной "1" будет отражаться двоичном как "10000000", и битовые операции будут производится именно с таким порядком бит.

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Ну хоть кто-то понял, значит не зря надрывался
поговорить с умным человеком, всегда приятно. Усилия не пропадут даром)
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
12.05.2019, 16:09
Цитата Сообщение от Evg Посмотреть сообщение
Ну хоть кто-то понял, значит не зря надрывался

Не по теме:

но я уже это примерно знал, ты сконфигурировал знания только

0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
12.05.2019, 16:15
Цитата Сообщение от Evg Посмотреть сообщение
Как ориентированы биты внутри байта - это детали реализации, спрятанные внутри абстракции, и при этом нету интерфейсов для того, чтобы прочитать бит номер 0, бит номер 1 и т.п.
Если я знаю, что при работе в коде, байт инициированный десятичной "1" будет всегда (в любых компиляторах) отражаться в двоичном как "10000000", то при обращении к конкретным битам
C++
1
((байт >> номер байта) & 1)
мне нет нужды знать внутреннюю реализацию абстракции. Интерфейсом будет
C++
1
((байт >> номер байта) & 1)
Есть правда еще некоторые инструменты, к примеру std::bitset.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
12.05.2019, 16:24
Байт - минимально доступная единица памяти, которая может обрабатываться процессором. Поэтому как-то получить неправильный порядок битов в ней можно только при неисправном/неправильно работающем железе.

Добавлено через 2 минуты
Ну а операции сдвига всегда работают в понимании что у нас именно BigEndian. Точно так же как десятичное число 1000 мы никогда не подразумеваем в виде 0001
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
12.05.2019, 17:06
Цитата Сообщение от TRam_ Посмотреть сообщение
Байт - минимально доступная единица памяти, которая может обрабатываться процессором. Поэтому как-то получить неправильный порядок битов в ней можно только при неисправном/неправильно работающем железе.
Выше было сказано, что
Цитата Сообщение от Evg Посмотреть сообщение
что байт - это некая абстракция, которая инкапсулирует внутри себя 8 бит.
, поэтому правильный или неправильный порядок вопрос интерфейса к абстракции. Код в посте 8 указывает на то, что может быть порядок "от младшего к старшему", т.е. байт инициированный десятичной "1" отражается в двоичном как "10000000".
Или укажите где упускаю.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
12.05.2019, 17:24
Цитата Сообщение от bedvit Посмотреть сообщение
байт инициированный десятичной "1" отражается в двоичном как "10000000".
Неправильно понял.Речь о порядке для нескольких байтов одного и того же числа. То есть если например у нас двухбайтовое число 3863, то на одних процессорах это будет "00001111 00010111" а на других "00010111 00001111". То есть меняются местами сами байты, но никак не биты в байтах.
0
12.05.2019, 17:26

Не по теме:

отписался от говнотемы

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2019, 17:26

Ввести байт в двоичной системе и вывести в десятичной
Dos Box, Tasm 1.4

Как перевести строку в массив байт в шестнадцатеричной системе?
Как перевести строку в массив байт в шестнадцатеричной системе?

Вывести каждый байт каждого числа в 16-тиричной системе счисления
Доброго времени суток, практически недавно начал изучать ассемблер и возникла такая проблема, не могу разобраться в задаче, друзья немного...

Как преобразовать байт-код (в шестнадцатеричной системе счисления) в команды assembler?
Предположим есть строка, состоящая из байтов, и нужно считать из неё команды assembler. Как это сделать подскажите, пожалуйста.

Перевод числа из двочной в шестнадцатеричную систему счисления
привет, какой алгоритм на перевеения з 2 в 16 системы чыслення...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru