Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / вопрос по Исключающая или / 7 сообщений из 7, страница 1 из 1
27.01.2007, 16:41
    #34287307
UlanOf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
Пытаюсь введенный мной текст сложить с числом по модулю два... Если не ошибаюсь то есть такая функция в Билдере ^ - исключающая ИЛИ
она сравнение как делает ? по битам?
Может фигню спросил..пытаюсь обьяснить.. Пример1:
Код: plaintext
1.
 b=(__int64) ([color=red] 1 [/color])^((__int64) ([color=red] 2 [/color]));
     ShowMessage((char)([color=red]b[/color]));

1= 001
2= 010
1^2=3
b= 3 или 100
Пример2:
Код: plaintext
1.
 b=(__int64) ("1")^((__int64) ("1"));
     ShowMessage((char)(b));
Почему я получаю то что на рисунке а не 0
получаю такое -
...
Рейтинг: 0 / 0
27.01.2007, 16:47
    #34287311
UlanOf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
Сори за повтор от корресктировал
Пытаюсь введенный мной текст сложить с числом по модулю два... Если не ошибаюсь то есть такая функция в Билдере ^ - исключающая ИЛИ
она сравнение как делает ? по битам?
Может фигню спросил..пытаюсь обьяснить.. Пример1:
Код: plaintext
1.
 b=(__int64) ( 1 )^((__int64) ( 2 ));//<- вот так
     ShowMessage((char)([color=red]b[/color]));

1= 001
2= 010
1^2=3
b= 3 или 100
Пример2:
Код: plaintext
1.
 b=(__int64) ("1")^((__int64) ("1"));
     ShowMessage((char)(b));
Почему я получаю то что на рисунке а не 0
получаю такое -
...
Рейтинг: 0 / 0
27.01.2007, 17:07
    #34287322
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
По примеру 1:

^ - это операция, а не функция. Вычисление производится по битам.

x1 x2 F0 0 00 1 11 0 11 1 0
Поэтому b = 3 - правильный результат.
Код: plaintext
1.
2.
3.
a = (1) 10  = (0001) 2 
b = (2) 10  = (0010) 2 
f           = (0011) 2 

По примеру 2:

Для приведения к символьному типу может стоит использовать itoa? Отображаемого символа кодом 0, по моему нет.
...
Рейтинг: 0 / 0
28.01.2007, 13:37
    #34287912
UlanOf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
UlanOf
Код: plaintext
1.
 b=(__int64) ("1")^((__int64) ("1"));
     ShowMessage((AnsiString)(b));
получаю такое -
См. пример 2 если приведение типов сделать с помощью AnsiString то получаем "2" так же как и с помощью itoa.
Если с помощью char то тот рисунок см. значек выводится такой...
Жду еще подсказок...
Нужно выполнить такую операцию.... Имея два блока по 32 бита в виде символов.. выполнить операцию исключающей или - ^ и с возможностью потом правильно конвертировать обратно получив символы получаемые в зовершении..
Очень срочно! заранее спасибо..
...
Рейтинг: 0 / 0
28.01.2007, 14:35
    #34287965
UlanOf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
UlanOf
Код: plaintext
1.
 b=(__int64) ("1")^((__int64) ("1"));
     ShowMessage((AnsiString)(b));
получаю такое -
См. пример 2 если приведение типов сделать с помощью AnsiString то получаем "2" так же как и с помощью itoa.
Если с помощью char то тот рисунок см. значек выводится такой...
Жду еще подсказок...
Нужно выполнить такую операцию.... Имея два блока по 32 бита в виде символов.. выполнить операцию исключающей или - ^ и с возможностью потом правильно конвертировать обратно получив символы получаемые в зовершении..
Очень срочно! заранее спасибо..
...
Рейтинг: 0 / 0
28.01.2007, 14:35
    #34287966
UlanOf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
Сорри F5 запал...:)
...
Рейтинг: 0 / 0
29.01.2007, 10:00
    #34288730
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Исключающая или
UlanOf UlanOf
Код: plaintext
1.
 b=(__int64) ("1")^((__int64) ("1"));
     ShowMessage((AnsiString)(b));
получаю такое -
См. пример 2 если приведение типов сделать с помощью AnsiString то получаем "2" так же как и с помощью itoa.
Если с помощью char то тот рисунок см. значек выводится такой...
Жду еще подсказок...
Нужно выполнить такую операцию.... Имея два блока по 32 бита в виде символов.. выполнить операцию исключающей или - ^ и с возможностью потом правильно конвертировать обратно получив символы получаемые в зовершении..
Очень срочно! заранее спасибо..

1. Для функции шоумессадж нужна строка а не число. В чем ты и убедился.

2. Вариант 1. Приобразовать строки в числа и выполнить искл. или.
Вариант 2. Написать функцию искл. или для строк.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / вопрос по Исключающая или / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]