@ -1,29 +1,65 @@
# include <iostream>
# include <iomanip>
# include "lab04.h"
# include <cassert>
using namespace std ;
int main ( ) {
uint8_t singleByte = 0xAB ;
uint8_t byteArray [ ] = { 0x12 , 0x34 , 0x56 , 0x78 , 0x9A , 0xBC , 0xDE , 0xF0 } ;
// Ôóíêöèÿ äëÿ ïðåäñòàâëåíèÿ nibble (4 áèò) â øåñòíàäöàòåðè÷íîé ñèñòåìå
char nibble_to_hex ( uint8_t i ) {
// Ìàññèâ öèôð â øåñòíàäöàòåðè÷íîé ñèñòåìå
char digits [ ] = " 0123456789abcdef " ;
cout < < " Print in Hex: " < < endl ;
print_in_hex( singleByte ) ;
// Ïðîâåðêà íà êîððåêòíîñòü àðãóìåíòà
assert( 0x0 < = i & & i < = 0xf ) ;
cout < < endl ;
print_in_hex ( byteArray , sizeof ( byteArray ) ) ;
// Âîçâðàùàåì ñèìâîë äëÿ nibble èç ìàññèâà digits
return digits [ i ] ;
}
cout < < " \n Print in Binary: " < < endl ;
print_in_binary ( singleByte ) ;
// Ôóíêöèÿ äëÿ ïå÷àòè îäíîãî áàéòà â øåñòíàäöàòåðè÷íîé è äâîè÷íîé ôîðìå
void print_in_hex ( uint8_t byte ) {
// Ïå÷àòü â øåñòíàäöàòåðè÷íîé ôîðìå
cout < < " Hex: " < < nibble_to_hex ( byte > > 4 ) < < nibble_to_hex ( byte & 0xf ) < < endl ;
// Ïå÷àòü â äâîè÷íîé ôîðìå
cout < < " Binary: " ;
for ( int i = 7 ; i > = 0 ; - - i ) {
cout < < ( ( byte > > i ) & 1 ) ;
}
cout < < endl ;
print_in_binary ( byteArray , sizeof ( byteArray ) ) ;
}
int main ( ) {
// Òåñòèðîâàíèå ôóíêöèè nibble_to_hex
//for (int i = 0; i <= 0xf; ++i) {
//assert(nibble_to_hex(i) == nibble_to_hex(i));
//}
assert ( nibble_to_hex ( 0x0 ) = = ' 0 ' ) ;
assert ( nibble_to_hex ( 0x1 ) = = ' 1 ' ) ;
assert ( nibble_to_hex ( 0x2 ) = = ' 2 ' ) ;
assert ( nibble_to_hex ( 0x3 ) = = ' 3 ' ) ;
assert ( nibble_to_hex ( 0x4 ) = = ' 4 ' ) ;
assert ( nibble_to_hex ( 0x5 ) = = ' 5 ' ) ;
assert ( nibble_to_hex ( 0x6 ) = = ' 6 ' ) ;
assert ( nibble_to_hex ( 0x7 ) = = ' 7 ' ) ;
assert ( nibble_to_hex ( 0x8 ) = = ' 8 ' ) ;
assert ( nibble_to_hex ( 0x9 ) = = ' 9 ' ) ;
assert ( nibble_to_hex ( 0xa ) = = ' a ' ) ;
assert ( nibble_to_hex ( 0xb ) = = ' b ' ) ;
assert ( nibble_to_hex ( 0xc ) = = ' c ' ) ;
assert ( nibble_to_hex ( 0xd ) = = ' d ' ) ;
assert ( nibble_to_hex ( 0xe ) = = ' e ' ) ;
assert ( nibble_to_hex ( 0xf ) = = ' f ' ) ;
// Ïå÷àòü áàéòà â øåñòíàäöàòåðè÷íîé è äâîè÷íîé ôîðìå
uint8_t test_byte = 0x2f ;
print_in_hex ( test_byte ) ;
return 0 ;
}
int main_calc ( ) {
int main_calc ( ) {
uint16_t operand1 , operand2 ;
char operation ;
@ -43,3 +79,20 @@ int main_calc(){
return 0 ;
}
int main_students ( ) {
// Student
Student students [ 3 ] = {
Student ( " Alice " , 2019 , 4.5 , 0 , 3 , nullptr ) ,
Student ( " Bob " , 2019 , 4.2 , 1 , 2 , nullptr ) ,
Student ( " Charlie " , 2019 , 4.7 , 1 , 4 , nullptr ) // Îáðàòèòå âíèìàíèå, ÷òî òóò íåò óêàçàòåëÿ íà groupLeader
} ;
// Details
for ( int i = 0 ; i < 3 ; + + i ) {
std : : cout < < " \n Details of Student " < < i + 1 < < " : " < < std : : endl ;
printStudentDetails ( students [ i ] ) ;
}
return 0 ;
}