From 62d39de2780d53614080a24027f26ab8deae5f86 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:41:17 +0300 Subject: [PATCH 01/13] Added homework 4 --- homework_4/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 homework_4/CMakeLists.txt diff --git a/homework_4/CMakeLists.txt b/homework_4/CMakeLists.txt new file mode 100644 index 0000000..1392ccc --- /dev/null +++ b/homework_4/CMakeLists.txt @@ -0,0 +1,3 @@ +project(homework_4) + +set(homeworkName "${PROJECT_NAME}") From 2f431b83697b6d7df996d01bf18c0468e09afcd8 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:43:19 +0300 Subject: [PATCH 02/13] Homework 4 task 1 --- homework_4/CMakeLists.txt | 2 + homework_4/task_1/CMakeLists.txt | 9 ++ homework_4/task_1/binaryAddition.c | 33 +++++++ homework_4/task_1/binaryAddition.h | 15 +++ homework_4/task_1/main.c | 149 +++++++++++++++++++++++++++++ homework_4/task_1/test.c | 41 ++++++++ 6 files changed, 249 insertions(+) create mode 100644 homework_4/task_1/CMakeLists.txt create mode 100644 homework_4/task_1/binaryAddition.c create mode 100644 homework_4/task_1/binaryAddition.h create mode 100644 homework_4/task_1/main.c create mode 100644 homework_4/task_1/test.c diff --git a/homework_4/CMakeLists.txt b/homework_4/CMakeLists.txt index 1392ccc..4d4fd12 100644 --- a/homework_4/CMakeLists.txt +++ b/homework_4/CMakeLists.txt @@ -1,3 +1,5 @@ project(homework_4) set(homeworkName "${PROJECT_NAME}") + +add_subdirectory(task_1) diff --git a/homework_4/task_1/CMakeLists.txt b/homework_4/task_1/CMakeLists.txt new file mode 100644 index 0000000..805cbe2 --- /dev/null +++ b/homework_4/task_1/CMakeLists.txt @@ -0,0 +1,9 @@ +project("${homeworkName}_task_1") + +add_library(binaryAddition binaryAddition.c) + +add_executable(${PROJECT_NAME} main.c) +target_link_libraries(${PROJECT_NAME} binaryAddition) + +add_executable(${PROJECT_NAME}_test test.c) +target_link_libraries(${PROJECT_NAME}_test PRIVATE binaryAddition) diff --git a/homework_4/task_1/binaryAddition.c b/homework_4/task_1/binaryAddition.c new file mode 100644 index 0000000..02a812b --- /dev/null +++ b/homework_4/task_1/binaryAddition.c @@ -0,0 +1,33 @@ +#include "binaryAddition.h" + +#include "stdio.h" + +int8_t addTwoNumbers(int8_t left, int8_t right, AdditionCallback callback) { + const int bitWidth = sizeof(int8_t) * 8; + + int8_t result = 0, carryBit = 0, accumulatedCarry = 0; + + if (callback != NULL) { + callback(left, right, result, accumulatedCarry, 0, 0, 0, 0, 0, 0); + } + + for (int i = 0; i < bitWidth; ++i) { + int8_t + leftBit = (left >> i) & 1, + rightBit = (right >> i) & 1, + resultBit = 0; + + resultBit = (leftBit + rightBit + carryBit) % 2; + int8_t newCarryBit = leftBit + rightBit + carryBit >= 2 ? 1 : 0; + + result |= resultBit << i; + accumulatedCarry |= newCarryBit << i; + + if (callback != NULL) { + callback(left, right, result, accumulatedCarry, leftBit, rightBit, resultBit, carryBit, newCarryBit, i + 1); + } + carryBit = newCarryBit; + } + + return result; +} diff --git a/homework_4/task_1/binaryAddition.h b/homework_4/task_1/binaryAddition.h new file mode 100644 index 0000000..e48fb14 --- /dev/null +++ b/homework_4/task_1/binaryAddition.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +/// Callback that is called after performing every step of addition. +/// Arguments in order: left, right, accumulatedResult, accumulatedCarryBits, +/// leftBit, rightBit, resultBit, oldCarryBit, newCarryBit, steps (0 before first step, incrementing after every step) +typedef void (*AdditionCallback)(int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int); + +/// @brief Adds two numbers with pre-step callback +/// @param left Left operand +/// @param right Right operand +/// @param callback Function to call after every step, can be `NULL`; it will be called once before first step +/// @return Result of the addition +int8_t addTwoNumbers(int8_t left, int8_t right, AdditionCallback callback); diff --git a/homework_4/task_1/main.c b/homework_4/task_1/main.c new file mode 100644 index 0000000..621bc01 --- /dev/null +++ b/homework_4/task_1/main.c @@ -0,0 +1,149 @@ +#include +#include +#include +#include + +#include "binaryAddition.h" + +// set to false to disable color and line overrides +#define PRINT_ANSI true + +void printAnsi(const char *format) { +#if PRINT_ANSI + printf("%s", format); +#endif +} + +void printBinary(int8_t number, int bits, int bitToHighlight) { + for (int i = bits - 1; i >= 0; --i) { + int bit = (number >> i) & 1; + if (i == bitToHighlight) { + printAnsi("\e[1;32m"); + printf("%d", bit); + printAnsi("\e[0m"); + } else { + printf("%d", bit); + } + } +} + +void printStep(int8_t left, int8_t right, int8_t accumulatedResult, int8_t accumulatedCarry, + int8_t leftBit, int8_t rightBit, int8_t resultBit, int8_t oldCarryBit, int8_t newCarryBit, int steps) { + + if (steps != 0) { +#if PRINT_ANSI + // 0th step prints 4 lines, 1st step and further - 6, and user inputs one more + const int clearLines = (steps == 1 ? 4 : 6) + 1; + + // move cursor back, clear all lines and move cursor again + printf("\e[%dA", clearLines); + for (int i = 0; i < clearLines; ++i) { + printf("\e[K\n"); + } + printf("\e[%dA", clearLines); +#endif + } + + const int bitWidth = sizeof(int8_t) * 8; + + // 1 space here because carry can overflow + printf(" "); + // print all carry bits + for (int i = bitWidth - 1; i >= 0; --i) { + if ((accumulatedCarry >> i) & 1 == 1) { + if (i + 1 == steps) { + printAnsi("\e[43m"); + printf("."); + printAnsi("\e[0m"); + } else { + printf("."); + } + } else { + printf(" "); + } + } + printf("\n"); + + // print left + printf(" "); + printBinary(left, bitWidth, steps - 1); + printf("\n"); + + // print right + printf("+ "); + printBinary(right, bitWidth, steps - 1); + printf("\n"); + + // print delimiter + printf(" "); + for (int i = 0; i < bitWidth; ++i) { + printf("-"); + } + printf("\n"); + + if (steps > 0) { + + const int stepsNotCompletedYet = bitWidth - steps; + + // print result + printf("= "); + for (int i = 0; i < stepsNotCompletedYet; ++i) { + printf(" "); + } + printBinary(accumulatedResult, steps, steps - 1); + printf("\n"); + + // print head + printf(" "); + for (int i = 0; i < stepsNotCompletedYet; ++i) { + printf(" "); + } + printf("^ <--> %d + %d", leftBit, rightBit); + + if (oldCarryBit != 0) { + printf(" + 1"); + } + + printf(" = %d", resultBit); + + if (newCarryBit != 0) { + printf(" (1 в уме)"); + } + + printf("\n"); + } + + // wait for enter + while (getchar() != '\n') {} +} + +int8_t readValue(const char *prompt, void (*printIncorrectValue)(long long, long long), long long lowLimit, long long highLimit) { + long long value; + printf("%s", prompt); + while ((scanf("%lld", &value) != 1) || value < lowLimit || value > highLimit) { + while (getchar() != '\n') {} + printIncorrectValue(lowLimit, highLimit); + } + return (int8_t)value; +} + +void printError(long long lowLimit, long long highLimit) { + printf("введено неверное значение: число должно быть больше %lld и меньше %lld; попробуйте ещё раз: ", lowLimit, highLimit); +} + +int main(void) { + setlocale(LC_ALL, "ru_RU.UTF-8"); + + int8_t left = readValue("введите первое число: ", printError, INT8_MIN, INT8_MAX); + int8_t right = readValue("введите второе число: ", printError, INT8_MIN, INT8_MAX); + + // reset input + while (getchar() != '\n') {} + + printf("для следующего шага нажмите Enter\n"); + + int8_t result = addTwoNumbers(left, right, printStep); + + printf("результат: \n"); + printf("%d + %d = %d\n", left, right, result); +} diff --git a/homework_4/task_1/test.c b/homework_4/task_1/test.c new file mode 100644 index 0000000..fe44a5c --- /dev/null +++ b/homework_4/task_1/test.c @@ -0,0 +1,41 @@ +#define CTEST_MAIN +#define CTEST_SEGFAULT +#include "../../ctest/ctest.h" + +#include + +#include "binaryAddition.h" + +int main(int argc, const char *argv[]) { + return ctest_main(argc, argv); +} + +CTEST(additionTests, zeroTest) { + ASSERT_EQUAL(addTwoNumbers(0, 0, NULL), 0); +} + +CTEST(additionTests, zeroPlusAnyTest) { + ASSERT_EQUAL(addTwoNumbers(0, 1, NULL), 1); + ASSERT_EQUAL(addTwoNumbers(0, 2, NULL), 2); + ASSERT_EQUAL(addTwoNumbers(0, 4, NULL), 4); + ASSERT_EQUAL(addTwoNumbers(0, 45, NULL), 45); + ASSERT_EQUAL(addTwoNumbers(0, 98, NULL), 98); + ASSERT_EQUAL(addTwoNumbers(0, 121, NULL), 121); + ASSERT_EQUAL(addTwoNumbers(0, -1, NULL), -1); + ASSERT_EQUAL(addTwoNumbers(0, -3, NULL), -3); + ASSERT_EQUAL(addTwoNumbers(0, -11, NULL), -11); +} + +CTEST(additionTests, oneNegativeTest) { + ASSERT_EQUAL(addTwoNumbers(31, -29, NULL), 2); + ASSERT_EQUAL(addTwoNumbers(-16, 4, NULL), -12); + ASSERT_EQUAL(addTwoNumbers(-1, 1, NULL), 0); + ASSERT_EQUAL(addTwoNumbers(-100, 100, NULL), 0); +} + +CTEST(additionTests, twoNegativeTest) { + ASSERT_EQUAL(addTwoNumbers(-31, -29, NULL), -60); + ASSERT_EQUAL(addTwoNumbers(-1, -2, NULL), -3); + ASSERT_EQUAL(addTwoNumbers(-10, -24, NULL), -34); + ASSERT_EQUAL(addTwoNumbers(-110, -10, NULL), -120); +} From 91966fd9321e476480721005b6910b34210cb1f2 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:46:38 +0300 Subject: [PATCH 03/13] Added homework 4 to root CMakeLists --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e2e18b..5b4b212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,3 +3,5 @@ project(homework LANGUAGES C) set(CMAKE_C_STANDARD 23) set(CMAKE_C_STANDARD_REQUIRED TRUE) + +add_subdirectory(homework_4) From 6a581177fa9cad036d2a7c17ab84821d6ff7966d Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:24:19 +0300 Subject: [PATCH 04/13] Changed bits from int8_t to bool --- homework_4/task_1/binaryAddition.c | 16 ++++++++-------- homework_4/task_1/binaryAddition.h | 3 ++- homework_4/task_1/main.c | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/homework_4/task_1/binaryAddition.c b/homework_4/task_1/binaryAddition.c index 02a812b..01b4a99 100644 --- a/homework_4/task_1/binaryAddition.c +++ b/homework_4/task_1/binaryAddition.c @@ -5,20 +5,20 @@ int8_t addTwoNumbers(int8_t left, int8_t right, AdditionCallback callback) { const int bitWidth = sizeof(int8_t) * 8; - int8_t result = 0, carryBit = 0, accumulatedCarry = 0; + int8_t result = 0; + int8_t accumulatedCarry = 0; + bool carryBit = 0; if (callback != NULL) { - callback(left, right, result, accumulatedCarry, 0, 0, 0, 0, 0, 0); + callback(left, right, result, accumulatedCarry, false, false, false, false, false, 0); } for (int i = 0; i < bitWidth; ++i) { - int8_t - leftBit = (left >> i) & 1, - rightBit = (right >> i) & 1, - resultBit = 0; + bool leftBit = ((left >> i) & 1) == 1; + bool rightBit = ((right >> i) & 1) == 1; + bool resultBit = ((leftBit + rightBit + carryBit) % 2) == 1; - resultBit = (leftBit + rightBit + carryBit) % 2; - int8_t newCarryBit = leftBit + rightBit + carryBit >= 2 ? 1 : 0; + bool newCarryBit = (leftBit + rightBit + carryBit) >= 2; result |= resultBit << i; accumulatedCarry |= newCarryBit << i; diff --git a/homework_4/task_1/binaryAddition.h b/homework_4/task_1/binaryAddition.h index e48fb14..8ff2de5 100644 --- a/homework_4/task_1/binaryAddition.h +++ b/homework_4/task_1/binaryAddition.h @@ -1,11 +1,12 @@ #pragma once +#include #include /// Callback that is called after performing every step of addition. /// Arguments in order: left, right, accumulatedResult, accumulatedCarryBits, /// leftBit, rightBit, resultBit, oldCarryBit, newCarryBit, steps (0 before first step, incrementing after every step) -typedef void (*AdditionCallback)(int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int); +typedef void (*AdditionCallback)(int8_t, int8_t, int8_t, int8_t, bool, bool, bool, bool, bool, int); /// @brief Adds two numbers with pre-step callback /// @param left Left operand diff --git a/homework_4/task_1/main.c b/homework_4/task_1/main.c index 621bc01..f7d3031 100644 --- a/homework_4/task_1/main.c +++ b/homework_4/task_1/main.c @@ -28,7 +28,7 @@ void printBinary(int8_t number, int bits, int bitToHighlight) { } void printStep(int8_t left, int8_t right, int8_t accumulatedResult, int8_t accumulatedCarry, - int8_t leftBit, int8_t rightBit, int8_t resultBit, int8_t oldCarryBit, int8_t newCarryBit, int steps) { + bool leftBit, bool rightBit, bool resultBit, bool oldCarryBit, bool newCarryBit, int steps) { if (steps != 0) { #if PRINT_ANSI From b530bf851280cbc89b6a52ea9047bc3414f135a1 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:40:41 +0300 Subject: [PATCH 05/13] Refactored ANSI printing --- homework_4/task_1/main.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/homework_4/task_1/main.c b/homework_4/task_1/main.c index f7d3031..ebe3274 100644 --- a/homework_4/task_1/main.c +++ b/homework_4/task_1/main.c @@ -8,19 +8,25 @@ // set to false to disable color and line overrides #define PRINT_ANSI true -void printAnsi(const char *format) { #if PRINT_ANSI - printf("%s", format); + +#define ANSI_BG_YELLOW "\e[43m" +#define ANSI_FG_GREEN "\e[32m" +#define ANSI_RESET "\e[0m" + +#else + +#define ANSI_BG_YELLOW "" +#define ANSI_FG_GREEN "" +#define ANSI_RESET "" + #endif -} void printBinary(int8_t number, int bits, int bitToHighlight) { for (int i = bits - 1; i >= 0; --i) { int bit = (number >> i) & 1; if (i == bitToHighlight) { - printAnsi("\e[1;32m"); - printf("%d", bit); - printAnsi("\e[0m"); + printf(ANSI_FG_GREEN "%d" ANSI_RESET, bit); } else { printf("%d", bit); } @@ -52,9 +58,7 @@ void printStep(int8_t left, int8_t right, int8_t accumulatedResult, int8_t accum for (int i = bitWidth - 1; i >= 0; --i) { if ((accumulatedCarry >> i) & 1 == 1) { if (i + 1 == steps) { - printAnsi("\e[43m"); - printf("."); - printAnsi("\e[0m"); + printf(ANSI_BG_YELLOW "." ANSI_RESET); } else { printf("."); } From db4c4a83245dfb5902c94514b5be9a9c48cb8df5 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:48:42 +0300 Subject: [PATCH 06/13] Added parentheses (hw4 task 1) --- homework_4/task_1/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework_4/task_1/main.c b/homework_4/task_1/main.c index ebe3274..61a8cab 100644 --- a/homework_4/task_1/main.c +++ b/homework_4/task_1/main.c @@ -56,7 +56,7 @@ void printStep(int8_t left, int8_t right, int8_t accumulatedResult, int8_t accum printf(" "); // print all carry bits for (int i = bitWidth - 1; i >= 0; --i) { - if ((accumulatedCarry >> i) & 1 == 1) { + if (((accumulatedCarry >> i) & 1) == 1) { if (i + 1 == steps) { printf(ANSI_BG_YELLOW "." ANSI_RESET); } else { From ead9cdd8e6228a6184268bb3f1cdfed190e6bc6e Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:49:12 +0300 Subject: [PATCH 07/13] Removed trailing whitespace (hw4 task 1) --- homework_4/task_1/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework_4/task_1/main.c b/homework_4/task_1/main.c index 61a8cab..8995414 100644 --- a/homework_4/task_1/main.c +++ b/homework_4/task_1/main.c @@ -41,7 +41,7 @@ void printStep(int8_t left, int8_t right, int8_t accumulatedResult, int8_t accum // 0th step prints 4 lines, 1st step and further - 6, and user inputs one more const int clearLines = (steps == 1 ? 4 : 6) + 1; - // move cursor back, clear all lines and move cursor again + // move cursor back, clear all lines and move cursor again printf("\e[%dA", clearLines); for (int i = 0; i < clearLines; ++i) { printf("\e[K\n"); From f92b82fbd6c1eb44911aa10e724ad7217471becb Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Tue, 10 Dec 2024 03:08:42 +0300 Subject: [PATCH 08/13] Fixed stdio.h include and added stdbool.h include (hw4 task 1) --- homework_4/task_1/binaryAddition.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/homework_4/task_1/binaryAddition.c b/homework_4/task_1/binaryAddition.c index 01b4a99..f00dc64 100644 --- a/homework_4/task_1/binaryAddition.c +++ b/homework_4/task_1/binaryAddition.c @@ -1,6 +1,7 @@ #include "binaryAddition.h" -#include "stdio.h" +#include +#include int8_t addTwoNumbers(int8_t left, int8_t right, AdditionCallback callback) { const int bitWidth = sizeof(int8_t) * 8; From 36124e37bc48373322aaeb5fbe1e388b083c76c0 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Tue, 10 Dec 2024 03:11:26 +0300 Subject: [PATCH 09/13] Removed 'PRIVATE' dependency modifier (hw4 task 1) --- homework_4/task_1/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework_4/task_1/CMakeLists.txt b/homework_4/task_1/CMakeLists.txt index 805cbe2..909778a 100644 --- a/homework_4/task_1/CMakeLists.txt +++ b/homework_4/task_1/CMakeLists.txt @@ -6,4 +6,4 @@ add_executable(${PROJECT_NAME} main.c) target_link_libraries(${PROJECT_NAME} binaryAddition) add_executable(${PROJECT_NAME}_test test.c) -target_link_libraries(${PROJECT_NAME}_test PRIVATE binaryAddition) +target_link_libraries(${PROJECT_NAME}_test binaryAddition) From d82d99bc3f9f654365f3d3178a1d40659ee39ab8 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Tue, 10 Dec 2024 03:43:31 +0300 Subject: [PATCH 10/13] Replaced stdio.h includes with stdlib.h (hw4 task 1) --- homework_4/task_1/binaryAddition.c | 2 +- homework_4/task_1/test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homework_4/task_1/binaryAddition.c b/homework_4/task_1/binaryAddition.c index f00dc64..3a969ac 100644 --- a/homework_4/task_1/binaryAddition.c +++ b/homework_4/task_1/binaryAddition.c @@ -1,7 +1,7 @@ #include "binaryAddition.h" #include -#include +#include int8_t addTwoNumbers(int8_t left, int8_t right, AdditionCallback callback) { const int bitWidth = sizeof(int8_t) * 8; diff --git a/homework_4/task_1/test.c b/homework_4/task_1/test.c index fe44a5c..c2b8ba1 100644 --- a/homework_4/task_1/test.c +++ b/homework_4/task_1/test.c @@ -2,7 +2,7 @@ #define CTEST_SEGFAULT #include "../../ctest/ctest.h" -#include +#include #include "binaryAddition.h" From 06487f21baab5465477a16df7e0df1a671ecf55e Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sun, 22 Dec 2024 22:12:13 +0300 Subject: [PATCH 11/13] Added README (hw 4) --- homework_4/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 homework_4/README.md diff --git a/homework_4/README.md b/homework_4/README.md new file mode 100644 index 0000000..ca10cb8 --- /dev/null +++ b/homework_4/README.md @@ -0,0 +1 @@ +# Homework 4 From c329127e504925d98270bc916ef124d157f5e6d7 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sun, 22 Dec 2024 22:14:37 +0300 Subject: [PATCH 12/13] Added task name to README (hw4 task 1) --- homework_4/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/homework_4/README.md b/homework_4/README.md index ca10cb8..7157418 100644 --- a/homework_4/README.md +++ b/homework_4/README.md @@ -1 +1,3 @@ # Homework 4 + +[Task 1. Binary Representation](/homework_4/task_1) From fd5a0c3392ef9718f72d02564a168b1a463d0652 Mon Sep 17 00:00:00 2001 From: ilya-krivtsov <180809461+ilya-krivtsov@users.noreply.github.com> Date: Sun, 22 Dec 2024 22:18:19 +0300 Subject: [PATCH 13/13] Fixed task name (hw4 task 1) --- homework_4/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework_4/README.md b/homework_4/README.md index 7157418..33f4ec2 100644 --- a/homework_4/README.md +++ b/homework_4/README.md @@ -1,3 +1,3 @@ # Homework 4 -[Task 1. Binary Representation](/homework_4/task_1) +[Task 1. Binary representation](/homework_4/task_1)