Форум программистов, компьютерный форум CyberForum.ru

Побайтовый вывод значения типа double - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как задать размерность одномерного массива http://www.cyberforum.ru/cpp-beginners/thread20171.html
Подскажите, пожалуйста, как задать размерность одномерного массива, чтобы ее можно было менять в зависимости от длины вводимой строки? str-строка текста, вводится с клавиатуры LenS=strlen(str); char Search;//выдает ошибку Можно ли размерность задавать не числом?
C++ Что означает и делает оператор ">>=" Глупый вопрос, но тем не менее. Что означает и делает оператор ">>=". Может есть русское описание? http://www.cyberforum.ru/cpp-beginners/thread20162.html
Считать из файла и поменять местами максимальное и минимальное слово C++
помогите дописать задачу...нужно считать из файли и поменять местами максимальное и минимальное слово...я поменять не могу... вот мой код #include <iostream> #include<stdio.h> using namespace std; int main() { int i=0,max=0,min=1,r=0,k=0,l=0; char *ptr; char *s=new char; char *tmp, *tmp1;
C++ Ссылки и ассемблерные вставки
Подскажите, пожалуйста, как внутри ассемблерной вставки на C++ снять адрес загрузки переменной, на которую ссылается ссылка. Заранее спасибо.
C++ Указатели в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread20136.html
Помогите пожайлуста!!! Как занулить главную диогональ, скока не пробовал, ни как не получается.... не могу найти ошибку :wall: Вот программа которую я написал: #include <stdio.h> #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <string.h> void show_matrix(int *mat, int n)
C++ Литература для начинающих всех с НГ!))) посоветуйте что почитать человеку который с программированием на Вы а в частности по С++... подробнее

Показать сообщение отдельно
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.01.2009, 00:15
C++
1
2
3
4
5
6
7
for ( j=sizeof (double) - 1; j>=0; j--) {
        cout << "Двоичное представление байта " << j << ":";
        for ( i=128; i; i>>=1)
            if (i & c[j]) cout << "1";
            else cout << "0";
            cout << "\n";
    }
128 - это 10000000 (8 бит в байте)
вообще при смещении это не 10000000, а 0000000010000000
операция & - побитовое умножение (что будет если ноль умножить на еденицу ?)
операция | - побитовое сложение (что будет если к нулю прибавить еденицу ?)
в логических операциях 1*1, 1+1 = 1 (а не два)

таким образом, если у тебя старший байт (это левый байт младшие правые) например представляет из себя 10101001
это выглядит как
Код
 0000000010101001
&
 0000000010000000
потом

Код
 0000000010101001
&
 0000000001000000
потом

Код
 0000000010101001
&
 0000000000100000
и тд

каждый раз они умножаются и все нули из маски (маска это число 128 сначала) съедают все нули и еденицы из проверяемого байта, а еденица из маски не съедает ни нуль ни еденицу, но её съедает ноль из проверяемого байта если он там есть

Код
                    if (i & c[j]) cout << "1";
			else cout << "0";
что такое истина в сишнике и в цпп ?
это всё что угодно кроме лжи
а что такое ложь там же ?
это только ноль (и все его виды NULL nullptr и прочие)

поэтому когда еденица в маске не съедается нулём, там остаётся не еденица а какая-то из степеней двойки, 128 64 32 и тд, но все они считаются истиной, т.к. истиной считается всё даже отрицательные и дробные числа кроме лжи, а ложь только ноль;
выводится еденица на экран, а при лжи выводится ноль на экран
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru