ISSN 2305-5626. Вестник МГТУ им. Н.Э. Баумана: электронное издание. 2013
2
ти байтовоого массива числа и
ByteBitMass
( ), в которой символьный
массив числа копируется в байтовый массив в обратном порядке:
Void inline ByteBits( unsigned char z )
{ unsigned char b = 0x80; // 1 в бите 7
while( b > 0 )
{ ( z & b ) == 0 ? cout << '0' : cout << '1';
b >>= 1;
}
}
//--------------------------------------------------------------
void inline ByteBitPrint( unsigned char* u, int nu )
{ for( int i = 0; i < nu; i++ ) // листинг u
{ ByteBits( u[i] );
cout << " ";
}
cout << endl;
}
//--------------------------------------------------------------
#include <string.h> // strlen
void ByteBitMass( unsigned char* a, char* sa )
{ int n = strlen( sa );
for( int i = 1; i < n; i++ )
a[n-1-i] = (unsigned char)sa[i] - 48; //цифровой
/элемент
a[n-1] = (unsigned char) sa[0]; // знак числа
}
Эти функции используются для ввода двух чисел
a
и
b
в функции
InputAB
( ):
#include <string.h> // strlen
#include "ByteBits.h"
#include "ByteBitPrint.h"
#include "ByteBitMass.h"
void InputAB( char* sa, unsigned char* a,
char* sb, unsigned char* b )
{ cout << "sa = ";
cin >> sa; // символьный ввод числа a
ByteBitMass( a, sa ); // преобразование в байтовый вид
int na = strlen( sa ); // количество цифр в числе a
cout << "a = "; ByteBitPrint( a, na ); // листинг числа a
cout << "sb = ";
cin >> sb; // символьный ввод числа b
ByteBitMass( b, sb ); // преобразование в байтовый вид
int nb = strlen( sb ); // количество цифр в числе b
cout << "b = "; ByteBitPrint( b, nb ); // листинг числа b
}
В представленной ниже программе
HI01
функции, которые нахо-
дятся в одноименных подключаемых файлах, позволяют ввести ин-
тересующие нас два числа с клавиатуры и просмотреть их на мони-
торе:
// Program HI01 (Win32)
// Исходные данные
#include <conio.h> // _getch
#include <iostream>
using namespace std;
1 3,4,5,6,7,8,9,10,11,12,...18