214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
1

может кто расскажет про биты?

25.08.2011, 13:25. Показов 3848. Ответов 58
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вопрос
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2011, 13:25
Ответы с готовыми решениями:

Time.h кто расскажет или покажет
Доброе время суток! имеем структуру struct Promo:tm //Создаем структуру! { ...

кто может обьяснить про что тут говорится
С помощью этого оператора & можно также выделять и устанавливать значения от- дельных битов....

Задача про биты
Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды,...

Задачка про биты
есть два числа по четыре байта 0000 0000 0000 0000 0000 0000 1001 0000 - первое число 0000...

58
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.08.2011, 20:34 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от AzaKendler Посмотреть сообщение
talis, я имел ввиду следующее. если я присваиваю инту значение 1. все остальное место занимают нули?
0000000000000000001 (примерно так??). чтобы зарезервировать именно память под него - забито ли остальное место до 32 бит нулями?
мне кажется пора вам открыть страшную тайну
в этом мире существует не только с и с# но и еще другой язык - ASM
такие операции происходят на уровне команд процессора (транслированный асм в машинные команды)
x86 имеет машинное слово в 32 бита, присваивание ей происходит за одну команду mov, естественно в этом случае будет только еденица
0
Заблокирован
25.08.2011, 20:34 22
судя по коду нет
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    int x;
    std::cout << x;
    return 0;
}
x= 3506164;
y= 134514315
ого сколько ответов, пока код царапал
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
25.08.2011, 20:38 23
alkagolik, а откуда появилось y= 134514315?

собственно, да, x не был инициализирован нулём
0
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 20:41  [ТС] 24
alex_x_x, ну зачем этот сарказм Алекс про мувы пуши леа и асм я обшее представление имею.
вопрос был в уточнении того как представлена единица в 32 битном инте в двоичной системе. асм оперирует регистрами и в каком регистре будет единичка столько и ноликов будет перед ней в двоичном представлении. разве нет?
0
Заблокирован
25.08.2011, 20:49 25
Цитата Сообщение от talis Посмотреть сообщение
alkagolik, а откуда появилось y= 134514315?

собственно, да, x не был инициализирован нулём
это я к вот этому
Обычно компиляторы инициализируют int нулём
а игрек я просто второй раз добавил чтобы посмотреть не одинаковые ли будут значения, но забыл вписать на форум. Короче каждый раз разные, как уже говорилось всякий "мусор"... поэтому если надо случайные числа просто не надо инициализировать переменную . Это юмор конечно, а то кто всерьез подумает.
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
25.08.2011, 21:02 26
Цитата Сообщение от AzaKendler Посмотреть сообщение
асм оперирует регистрами и в каком регистре будет единичка столько и ноликов будет перед ней в двоичном представлении. разве нет?
Не совсем. Я плохо знаком с синтаксисом Intel (парадокс, знаю :-) ), у AT&T есть, например, movl и movb. movl (move long) копирует 4 байта, когда movb (move byte) копирует один байт. Вот пример (для GCC):

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main( int argc, char ** argv )
{
    int x = 0xaaaaaaaa, y = 0xffffffff;
 
    printf( "movl test\n%x %x\n", x, y );
 
    asm( "movl %[x], %%eax\n"
         "movl %%eax, %[y]"
         : [y] "=g" (y)
         : [x] "g" (x)
       );
 
    printf( "%x %x\n", x, y );
 
    x = 0xdddddddd;
    y = 0x77777777;
 
    printf( "\nmovb test\n%x %x\n", x, y );
 
    asm( "movb %[x], %%eax\n"
         "movb %%eax, %[y]"
         : [y] "=g" (y)
         : [x] "g" (x)
       );
 
    printf( "%x %x\n", x, y );
 
    return 0;
}
Вывод
movl test
aaaaaaaa ffffffff
aaaaaaaa aaaaaaaa

movb test
dddddddd 77777777
dddddddd 777777dd


Так что количество копируемой информации определяется инструкцией.
0
Заблокирован
25.08.2011, 21:05 27
Цитата Сообщение от alkagolik Посмотреть сообщение
Обычно компиляторы инициализируют int нулём
объекты со static storage duration инициализируются конструкторами по умолчанию, то есть инт - 0. Про остальные ничего не сказано
0
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 21:18  [ТС] 28
talis, я все про те же яйца только в профиль. 32 битный инт. 1 это 0000000000001.
eax c 1 это? разве не те же 0000000000001. про двоичную систему и разрядность и единичку с ее представление в 32 разр.
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
25.08.2011, 21:26 29
AzaKendler, да, 1 = 01 = 001 = 0001 = 00001... так же как в десятичной системе 15 = 015 = 0015 = 00015.
1
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 21:30  [ТС] 30
джмп.Это хумора немного
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.08.2011, 21:52 31
AzaKendler, чего же тебе про биты-то рассказать?
Целый положительный int, равный 1 в 32-битном режиме Intel - это 0...01, нулей 31 штука. Оно же и беззнаковый int такой же.
Целый отрицательный int, то есть -1, в 32-битном режиме - это 1...1, единиц 32 штуки.
Целый положительный дробный 1.0 в 32-битном виде - это 0011111110...0
Целый отрицательный дробный -1.0 в 32-битном виде - это 1011111110...0
2
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 22:12  [ТС] 32
ValeryLaptev, спасибо Валерий. хорошее инфо
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.08.2011, 22:17 33
AzaKendler, про представление целых погугли по словам "дополнительный код". А про дробные - IEEE-754 - это стандарт, который в настоящее время реализован ВО ВСЕХ компьютерах.
Кстати, еще надо помнить, что в памяти числа лежат по принципу: младший байт по младшему адресу. Если рисовать на бумажке, то получится по - арабски, справа-налево.
1
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.08.2011, 22:19 34
AzaKendler, лучше книжки почитайте про представление чисел, понятие дополнительного кода, почему именно этот код и т.д. Не ленитесь в книжках "ковыряться", на форуме могут подкорректировать ваши знания, но это не заменит хороших книг.
1
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 22:28  [ТС] 35
Olga_, книжки это то что я читаю. правда электронные. но все же. те опытные парни и.. дамы, которые присутствуют на форуме, в процессе общения, пусть иногда агрессивного, приносят очень много пользы новичкам. таким как я
1
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.08.2011, 22:37 36
Цитата Сообщение от AzaKendler Посмотреть сообщение
Olga_, книжки это то что я читаю. правда электронные. но все же. те опытные парни и.. дамы, которые присутствуют на форуме, в процессе общения, пусть иногда агрессивного, приносят очень много пользы новичкам. таким как я
Ну смотрите сами. Тогда форум вам в помощь
0
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 22:39  [ТС] 37
И Ольга, может я тему сформулировал неверно раз на такой совет нарвался? Ссуть вопроса в том что я решил для себя разобраться почему при работе с потоками ввода\вывода операции с чар в разы быстрее инта в том примере от гризлика. Поэтому пришлось пустится в такую переписку и задать вопросы. Параллельно много разной полезной инфы собрал. :cofee2:
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.08.2011, 22:43 38
AzaKendler, при работе с потоками - тут много разных причин.
Если поток текстовый, то чары пишутся-читаются без преобразования, а числа - с преобразованием. Там большая функция перевода работает. Она хоть и быстрая, но время занимает.
Если поток бинарный, то пофигу - одинаково быстро читаются-пишутся. Так как никаких преобразований не производится.
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.08.2011, 22:43 39
Цитата Сообщение от AzaKendler Посмотреть сообщение
И Ольга, может я тему сформулировал неверно раз на такой совет нарвался? Ссуть вопроса в том что я решил для себя разобраться почему при работе с потоками ввода\вывода операции с чар в разы быстрее инта в том примере от гризлика. Поэтому пришлось пустится в такую переписку и задать вопросы. Параллельно много разной полезной инфы собрал. :cofee2:
Лучше будем считать, что я неверно поняла вопрос
0
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
25.08.2011, 22:48  [ТС] 40
ValeryLaptev, да там парни как раз писали про это а мне интересно было что за разница в представлениях в итоге получается между чар 1 и инт 1 от туда и пошло. Хочется спросить а что такое бинарный поток))? Но по совету Ольги полезу в гугл и накачаю книжек.
ну если честно то каюсь не дошел я еше до потоков. на контейнерах вишу. прочитал и теперь опять задания...не скоро еще потоки
0
25.08.2011, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2011, 22:48
Помогаю со студенческими работами здесь

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты с 4 по 8, включая...

... В четных байтах числа в двоичной системе переместить нулевые биты в старшие биты, а в нечетных байтах – в младшие ...
Доброго времени суток всем, столкнулся с проблемой по С++,требуется написать программу: которая...

Интересно, может кто расскажет
Приветствую форумчане, на днях у меня возник вопрос! Вот в интернете много пишут, что современные...

Кто сталкивался с фирмой DNS, и кто может сказать про эксплуатацию их ноутов сервис и прочее
Добрый день. Кто сталкивался с фирмой DNS, и кто может сказать, что хорошего или плохого про нее,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru