Сommit
1e091d8186
Двоичный файл не отображается.
@ -0,0 +1,91 @@
|
||||
#include <iostream>
|
||||
#include <assert.h>
|
||||
using namespace std;
|
||||
|
||||
char nibble_to_hex(uint8_t i)
|
||||
{
|
||||
char digits[] = "0123456789abcdef";
|
||||
assert(0x0 <= i && i <= 0xf);
|
||||
return digits[i];
|
||||
}
|
||||
|
||||
void print_in_hex(uint8_t byte) {
|
||||
cout << nibble_to_hex(byte >> 4)
|
||||
<< nibble_to_hex(byte & 0xf);
|
||||
}
|
||||
|
||||
const uint8_t* as_bytes(const void* data)
|
||||
{
|
||||
return reinterpret_cast<const uint8_t*>(data);
|
||||
}
|
||||
|
||||
void print_in_hex(const void* data, size_t size) {
|
||||
const uint8_t* bytes = as_bytes(data);
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
print_in_hex(bytes[i]);
|
||||
|
||||
if ((i + 1) % 16 == 0) {
|
||||
cout << '\n';
|
||||
}
|
||||
else {
|
||||
cout << ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char bit_digit(uint8_t byte, uint8_t bit) {
|
||||
if (byte & (0x1 << bit)) {
|
||||
return '1';
|
||||
}
|
||||
return '0';
|
||||
}
|
||||
|
||||
void print_in_binary(uint8_t byte) {
|
||||
for (int bit = 7; bit >= 0; bit--) {
|
||||
cout << bit_digit(byte, bit);
|
||||
}
|
||||
}
|
||||
|
||||
void print_in_binary(const void* data, size_t size) {
|
||||
const uint8_t* bytes = as_bytes(data);
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
print_in_binary(bytes[i]);
|
||||
|
||||
if ((i + 1) % 4 == 0) {
|
||||
cout << '\n';
|
||||
}
|
||||
else {
|
||||
cout << ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
assert(nibble_to_hex(0x0) == '0');
|
||||
assert(nibble_to_hex(0x1) == '1');
|
||||
assert(nibble_to_hex(0x1) == '2');
|
||||
assert(nibble_to_hex(0x1) == '3');
|
||||
assert(nibble_to_hex(0x1) == '4');
|
||||
assert(nibble_to_hex(0x1) == '5');
|
||||
assert(nibble_to_hex(0x1) == '6');
|
||||
assert(nibble_to_hex(0x1) == '7');
|
||||
assert(nibble_to_hex(0x1) == '8');
|
||||
assert(nibble_to_hex(0x1) == '9');
|
||||
assert(nibble_to_hex(0x1) == 'a');
|
||||
assert(nibble_to_hex(0x1) == 'b');
|
||||
assert(nibble_to_hex(0x1) == 'c');
|
||||
assert(nibble_to_hex(0x1) == 'd');
|
||||
assert(nibble_to_hex(0x1) == 'e');
|
||||
assert(nibble_to_hex(0xf) == 'f');
|
||||
uint32_t u32 = 0x42;
|
||||
cout << "u32 bytes: ";
|
||||
print_in_hex(&u32, sizeof(u32));
|
||||
cout << '\n';
|
||||
print_in_binary(&u32, sizeof(u32));
|
||||
cout << '\n';
|
||||
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Source.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Двоичный файл не отображается.
@ -0,0 +1,108 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <assert.h>
|
||||
using namespace std;
|
||||
//ïðåîáðàçîâàíèå îäíîé øåñòíàäöàòåðè÷íîé öèôðû â ASCII ñèìâîë
|
||||
char nibble_to_hex(uint8_t i)
|
||||
{
|
||||
char digits[] = "0123456789abcdef"; //ìàññèâ ñèìâîëîâ äëÿ ïðåîáðàçîâàíèÿ
|
||||
assert(0x0 <= i && i <= 0xf); //ïðîâåðêà ÷òîáû çíà÷åíèå íàõîäèëîñü â äîïóñòèìîì äèàïàçîíå
|
||||
return digits[i]; //âåðíóòü ñèìâîë, ñîîòâåñòâóþùèé öèôðå
|
||||
}
|
||||
//âûâîä áàéòà â øåñòíàäöàòåðè÷íîé ñèñòåìå íà ýêðàí
|
||||
void print_in_hex(uint8_t byte) {
|
||||
cout << nibble_to_hex(byte >> 4)
|
||||
<< nibble_to_hex(byte & 0xf);
|
||||
}
|
||||
//ïðåîáðàçîâàíèå òèïà óêàçàòåëÿ ê áàéòîâîìó
|
||||
const uint8_t* as_bytes(const void* data)
|
||||
{
|
||||
return reinterpret_cast<const uint8_t*>(data);
|
||||
}
|
||||
//âûâîä áëîêà äàííûõ â âèäå 16ðè÷íûõ áàéò
|
||||
void print_in_hex(const void* data, size_t size) {
|
||||
const uint8_t* bytes = as_bytes(data); //ïðåîáðàçîâàòü óêàçàòåëü â áàéòîâûé
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
print_in_hex(bytes[i]);
|
||||
// Äëÿ óäîáñòâà ÷òåíèÿ: ïðîáåëû ìåæäó áàéòàì, ïî 16 áàéò íà ñòðîêó.
|
||||
if ((i + 1) % 16 == 0) { //ïîñëå âûâîäà 16 áàéò ïåðåõîäèòü íà íîâóþ ñòðîêó
|
||||
cout << '\n';
|
||||
}
|
||||
else {
|
||||
cout << ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
//ïðåîáðàçîâàíèå îäíîé äâîè÷íîé öèôðû â ASCII ñèìâîë
|
||||
char bit_digit(uint8_t byte, uint8_t bit) {
|
||||
if (byte & (0x1 << bit)) {
|
||||
return '1';
|
||||
}
|
||||
return '0';
|
||||
}
|
||||
//âûâîä áàéòà â äâîè÷íîé ñèñòåìå íà ýêðàí
|
||||
void print_in_binary(uint8_t byte) {
|
||||
for (int bit = 7; bit >= 0; bit--) {//ïîáèòîâûé âûâîä
|
||||
cout << bit_digit(byte, bit);
|
||||
}
|
||||
}
|
||||
//âûâîä áëîêà äàííûõ â âèäå äâîè÷íûõ áàéò
|
||||
void print_in_binary(const void* data, size_t size) {
|
||||
const uint8_t* bytes = as_bytes(data);
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
print_in_binary(bytes[i]);
|
||||
// Äëÿ óäîáñòâà ÷òåíèÿ: ïðîáåëû ìåæäó áàéòàìè, ïî 4 áàéòà íà ñòðîêó.
|
||||
if ((i + 1) % 4 == 0) {
|
||||
cout << '\n';
|
||||
}
|
||||
else {
|
||||
cout << ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
string action;
|
||||
uint16_t operand1, operand2, result;
|
||||
setlocale(LC_ALL, "Russian");//ðóññêàÿ ëîêàëü
|
||||
cout << "Ââåäèòå âûðàæåíèå: ";
|
||||
//ââîä ýëåìåíòîâ âûðàæåíèÿ
|
||||
cin >> operand1;
|
||||
cin >> action;
|
||||
cin >> operand2;
|
||||
if (action == "&") //â çàâèñèìîñòè îò ââåäåííîãî äåéñòâèÿ âûïîëíÿåì ñîîòâ îïåðàöèþ íàä îïåðàíäàìè
|
||||
{
|
||||
result = operand1 & operand2;
|
||||
}
|
||||
else if (action == "|")
|
||||
{
|
||||
result = operand1 | operand2;
|
||||
}
|
||||
else if (action == "^")
|
||||
{
|
||||
result = operand1 ^ operand2;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Íåèçâåñòíîå äåéñòâèå" << endl;
|
||||
system("pause");
|
||||
return 1;
|
||||
}
|
||||
//âûâîä â 16ðè÷íîé ñèñòåìå
|
||||
print_in_hex(&operand1, sizeof(operand1));
|
||||
cout << action << " ";
|
||||
print_in_hex(&operand2, sizeof(operand2));
|
||||
cout << "= ";
|
||||
print_in_hex(&result, sizeof(result));
|
||||
cout << endl;
|
||||
//è äâîè÷íîé
|
||||
print_in_binary(&operand1, sizeof(operand1));
|
||||
cout << action << endl;
|
||||
print_in_binary(&operand2, sizeof(operand2));
|
||||
cout << "=" << endl;
|
||||
print_in_binary(&result, sizeof(result));
|
||||
cout << endl;
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Source.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Двоичный файл не отображается.
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Source.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Двоичный файл не отображается.
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Source.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -0,0 +1,10 @@
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque neque, rhoncus nec neque quis, mollis bibendum tortor. Etiam ante risus, viverra sit amet tellus placerat, dignissim mattis sapien. Sed vitae dignissim nisi. In a velit vitae ex cursus dignissim. Aenean non pellentesque lacus. Ut vitae bibendum urna, id porttitor metus. Suspendisse consequat eros sed lobortis rhoncus. Pellentesque mattis tellus elit, ut blandit dui posuere id. Nullam blandit felis blandit erat consectetur ornare. Proin libero erat, dapibus ac massa vitae, porta bibendum ex. Phasellus sollicitudin diam dolor, et euismod leo volutpat euismod. Etiam id turpis vehicula, rutrum nulla vitae, suscipit dolor. Aenean augue elit, semper vitae ex eget, auctor venenatis risus.
|
||||
Duis sit amet lectus sagittis, hendrerit neque a, aliquet felis. Pellentesque sit amet orci lectus. Duis orci tortor, dignissim eget libero vel, pretium hendrerit felis. Nam imperdiet nibh at venenatis hendrerit. Nunc consequat eu sem nec facilisis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam volutpat ipsum id placerat placerat. Mauris tincidunt, mi eu mollis maximus, arcu leo sollicitudin diam, ac vestibulum odio augue vitae urna. Duis malesuada aliquet erat. Mauris vitae lectus sit amet nunc congue eleifend. Fusce tempor commodo sapien ac vulputate. Suspendisse potenti. Duis consequat tortor vel enim molestie, efficitur dictum libero porttitor. Suspendisse congue nulla magna, sed placerat enim congue non. In varius lacus at venenatis efficitur. Phasellus ullamcorper fermentum viverra.
|
||||
Vivamus placerat ex libero, at vulputate orci volutpat nec. Sed convallis, augue sit amet sollicitudin ultricies, risus risus pharetra lorem, ut molestie libero nisi ut nisi. Proin sollicitudin euismod vestibulum. Aenean in urna tempor, finibus tellus molestie, vulputate sem. Suspendisse ut ultricies eros, vel auctor ligula. Pellentesque mattis mi non cursus consectetur. Donec sed purus venenatis arcu convallis vestibulum. Proin quis porttitor risus. Pellentesque cursus est sed mollis imperdiet. In porta ullamcorper est, ut volutpat urna aliquam in. Mauris pulvinar, sem id sodales egestas, lacus leo congue enim, vel vestibulum turpis urna id lorem. Cras iaculis varius sem, nec ullamcorper massa tempus vitae. Praesent ac risus ipsum. Curabitur lacinia hendrerit magna sed vestibulum. Vivamus in mattis diam. Mauris tristique sagittis ex at lobortis.
|
||||
Maecenas tristique, massa id finibus commodo, turpis lacus cursus lacus, ut egestas sem lacus posuere quam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis vel nisl sapien. Aliquam lorem sapien, blandit sit amet lectus in, finibus mollis odio. Aliquam erat volutpat. Curabitur ac porttitor mauris. Etiam massa neque, placerat ac aliquet vel, imperdiet laoreet leo. Vivamus cursus nibh rutrum lectus suscipit cursus.
|
||||
Nullam ac tempus lacus. Maecenas gravida faucibus aliquam. Vivamus scelerisque lectus at libero iaculis rutrum. Proin id sapien ligula. Duis vel ultricies elit, sed vulputate enim. Donec accumsan egestas dolor et iaculis. Aenean varius sem in dolor aliquet, ac posuere quam luctus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
||||
Fusce at vestibulum est. Proin malesuada, elit sit amet interdum malesuada, purus lorem mollis libero, aliquet pharetra sem elit sed quam. Nunc quis risus accumsan nibh posuere pharetra. Nulla luctus dolor erat, sit amet dignissim mi auctor id. Fusce porttitor felis vel sapien gravida pellentesque. Cras porttitor varius est ut pellentesque. Nullam eu iaculis leo. In venenatis massa et posuere ornare. Nunc ante massa, vulputate non ante bibendum, mattis venenatis libero. Proin commodo mollis elit, ac venenatis orci sagittis ac.
|
||||
Nam vulputate odio quis ultrices tempus. Aliquam erat volutpat. Integer sit amet consectetur lacus, in finibus diam. Maecenas interdum ligula quis luctus egestas. Nulla ligula nisi, convallis a tincidunt sed, pellentesque vitae lorem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus semper lobortis urna. Ut vitae nibh nisi. Nunc sit amet diam et elit sagittis cursus. Phasellus fermentum volutpat blandit. Duis facilisis, nulla et imperdiet finibus, quam leo fermentum leo, at fermentum metus sapien vel neque.
|
||||
Duis diam ex, lobortis quis pharetra non, fringilla a purus. Morbi faucibus dolor lacus. Aenean quis imperdiet nibh. Quisque vel sem ut magna suscipit elementum. Aenean nisi felis, commodo et gravida vel, hendrerit ut enim. Aliquam velit mauris, interdum faucibus lorem pharetra, sagittis tincidunt est. Phasellus varius velit mauris, id maximus leo malesuada ut. Suspendisse auctor vulputate mattis. Morbi tincidunt, arcu ut dictum tristique, orci metus porttitor augue, sit amet venenatis purus mi tincidunt mauris. Phasellus vitae tristique velit, eu malesuada lectus. Morbi efficitur semper est, id consectetur sem sodales pellentesque.
|
||||
Morbi non sollicitudin turpis, a accumsan nisl. Proin vitae blandit erat. Morbi pharetra leo ex, at luctus quam semper vel. Nam felis ex, rutrum at orci vitae, pretium placerat nisl. Quisque maximus pellentesque semper. In lobortis sit amet tellus feugiat placerat. Praesent et orci facilisis, dignissim eros at, sagittis arcu. Nullam urna odio, tincidunt in purus at, vehicula consectetur eros. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi et libero felis. Donec elementum dui quis nibh convallis, at mattis sapien efficitur. Mauris lacinia auctor elit. Aliquam erat volutpat. Quisque nibh odio, molestie id arcu sit amet, maximus cursus velit. Nunc gravida posuere erat eget pulvinar. Fusce viverra varius placerat.
|
||||
In hac habitasse platea dictumst. Vestibulum ornare nulla quis arcu gravida accumsan et vitae ipsum. Nam ut velit nisi. Maecenas eu luctus orci. Nullam nec purus vitae magna ultrices consequat. Proin rutrum aliquet cursus. Sed tempor a urna at lacinia. Morbi fermentum commodo mi eu volutpat. Praesent in sapien purus. Nam ultrices augue vel tellus congue, id tristique dui euismod.
|
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче