Sla
|
|
« Ответ #60 : 25-12-2009 07:57 » |
|
Dana, -6? А ты знаешь где хранится знак числа?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dana
|
|
« Ответ #61 : 25-12-2009 08:07 » |
|
допустим число 6 110, если побитово 00000110 -6 110, если побитово 11111010 -это доп код, так как кажется в двоичной системе нет знаков
|
|
« Последнее редактирование: 25-12-2009 08:09 от Dana »
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #62 : 25-12-2009 08:11 » |
|
Кстати, в исходном задании про ввод числа с клавиатуры/из файла ничего не было. Так-что возможно можно ограничится просто переводом некоего заданного раннее значения в двоичное представление. Например, следующий алгоритм: 1. установить счётчик повторений равный 8; 2. проверить старший - 7-ой бит переменной, если он 0 - вывести символ '0', иначе 1; 3. сдвинуть переменную на один разряд влево; 4. декрементировать счётчик на 1; 5. если значение счётчика равно 0, то завершить выполнение, в противном случае перейти к шагу 2.
|
|
|
Записан
|
|
|
|
Dana
|
|
« Ответ #63 : 25-12-2009 08:16 » |
|
Для начинающего установить счетчик, как первый раз встать на ноги. 5 пункт не совсем понятно
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #64 : 25-12-2009 08:19 » |
|
Счётчик - это специальная переменная, в принципе может иметь любое имя например i или counter, . Если Вы изучаете, язык C, думаю, будет понятна следующая запись: Могу весь алгоритм привести в виде реализации на языке С, если в этом есть необходимость.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #65 : 25-12-2009 08:20 » |
|
тут удобнее применить однобитовую маску - меньше движений
|
|
|
Записан
|
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #66 : 25-12-2009 08:23 » |
|
тут удобнее применить однобитовую маску - меньше движений это дело вкуса, имхо. в любом случае будут сдвиги и декременты счётчиков и циклы.
|
|
|
Записан
|
|
|
|
Oldy
|
|
« Ответ #67 : 25-12-2009 08:23 » |
|
однобайтового числа типа char. -6 = 2 char'а
|
|
|
Записан
|
С уважением, Oldy.
|
|
|
Sla
|
|
« Ответ #68 : 25-12-2009 08:27 » |
|
Oldy, ая всегда считал что char - [-127,127]
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #69 : 25-12-2009 08:27 » |
|
однобайтового числа типа char. -6 = 2 char'а тогда уж три, т.к. если это C-шная строка, то там должен быть ещё 0-вой символ. т.е. '-', '6', '\0'
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #70 : 25-12-2009 08:28 » |
|
ну после парса он превратится в ((char)-0x06)
|
|
|
Записан
|
|
|
|
Oldy
|
|
« Ответ #71 : 25-12-2009 08:30 » |
|
И какой символ имеет код -126 например?
|
|
|
Записан
|
С уважением, Oldy.
|
|
|
Dana
|
|
« Ответ #72 : 25-12-2009 08:34 » |
|
мне надо сделать по однобитовой маске пока, но со счетчиком тоже интересно. Получается что если у меня отрицательное число (-6), то оно уже не однобитовое?
|
|
« Последнее редактирование: 25-12-2009 08:36 от Dana »
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
Sla
|
|
« Ответ #73 : 25-12-2009 08:37 » |
|
Я исходил из условий Вывести на экран двоичный код однобайтового числа типа char.
надо сказать, что получилось масло масляное. Наверное, должно быть Вывести на экран двоичный код числа типа char.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #74 : 25-12-2009 08:38 » |
|
мне надо сделать по однобитовой маске пока, но со счетчиком тоже интересно. Получается что если у меня отрицательное число (-6), то оно уже не однобитовое?
Ты хотела сказать НЕ ОДНОБАЙТОВОЕ
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dana
|
|
« Ответ #75 : 25-12-2009 08:40 » |
|
Да, так как происходит переполнение
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
Dana
|
|
« Ответ #76 : 25-12-2009 08:40 » |
|
допустим число 6 110, если побитово 00000110 -6 110, если побитово 11111010 -это доп код, так как кажется в двоичной системе нет знаков
так я здесь правильно размышляла или нет?
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #77 : 25-12-2009 08:42 » |
|
И какой символ имеет код -126 например?
в ascii нет такого символа, а так код будет 0x82 - смотря, из какой таблицы (не знаю, какие они там ещё)
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #78 : 25-12-2009 08:56 » |
|
для хранения отрицательных чисел существует два метода 1's complement и 2's complement
Знаковые обратные двоичные коды или 1's complement
Отрицательные числа в них получаются инвертированием всех разрядов числа.
Знаковые дополнительные двоичные коды или 2's complement.
Отрицательные числа в них получаются инвертированием всех разрядов числа, а потом прибавляется 1.
Кстати, char [-128..127]
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dana
|
|
« Ответ #79 : 25-12-2009 09:02 » |
|
мне бы хоть с положительными разобраться
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #80 : 25-12-2009 09:06 » |
|
мне бы хоть с положительными разобраться
в данном задании, как мне кажется, это не важно, и положительное и отрицательное число имеют одно и тоже количество битов представления - в случае char - 8.
|
|
|
Записан
|
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #81 : 25-12-2009 09:11 » |
|
реализация алгоритма на С, сначала просто переводим с русского на С-шный: Удален модератором
в общем что-то подобное этому.
|
|
« Последнее редактирование: 25-12-2009 09:16 от Sla »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #82 : 25-12-2009 09:28 » |
|
Dana, давай начинай с формализованного алгоритма.
Пример, я тебе показывал. Ты рассказываешь бабушке/дедушке, ничего не понимающим в компьютерах, что ты будешь делать.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dana
|
|
« Ответ #83 : 25-12-2009 09:55 » |
|
1.Ввести число 1. Считать симовл с клавиатуры 2. посмотрю какое число: отрицательное, или положительное, если отрицательное, то возьму число по модулю в двоичной сичтеме, потом если у меня 1 то ее меняю на 0, если 0 то на единицу к получившемуся значению прибавляю 1, получаю число. если положительное то оставляю как есть и формирую маску.
как формировать маску не понятно
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #84 : 25-12-2009 10:00 » |
|
Маска это тоже число, возможно даже константа. Формировать её нужно исходя из того, какие биты из заданного числа Вам необходимо получить.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #85 : 25-12-2009 10:01 » |
|
Dana, не понятно. Дедушка не понял. Если он еще может понять/вспомнить двоичный/десятичный код, то такие слова как взять по модулю, для него это будет ужасТно. Начни сначала Напомню! Тебе нужен неформализованный алгоритм.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #86 : 25-12-2009 10:05 » |
|
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dana
|
|
« Ответ #87 : 28-12-2009 04:46 » |
|
Доброе утро! 1.Ввести число 1. Считать симовл с клавиатуры 2. посмотрю какое число: отрицательное, или положительное, если отрицательное, то возьму число это число только положительное в двоичной системе, потом все единицы числа меняю на 0, а 0 на единицы. После замены к получившемуся значению прибавляю 1, получаю число для которого надо сформировать маску. Если же число положительное то ничего не меняю и формирую для числа маску.
как формировать маску не понятно
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
Dana
|
|
« Ответ #88 : 28-12-2009 05:27 » |
|
#include <stdio.h> #include <stdlib.h>
int main() { int i; char n; printf("Vvedite chislo: "); scanf("%i",&n); for (i=7; i>=0; i--); if char n = 1 << 7; - что-то не то? return 0;
}
|
|
|
Записан
|
Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #89 : 28-12-2009 06:13 » |
|
Dana, а компилятор что на программу говорит?
|
|
|
Записан
|
|
|
|
|