Arnab Chakraborty

Arnab Chakraborty

3,768 Articles Published

Articles by Arnab Chakraborty

Page 175 of 377

Power of Two in C

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 1K+ Views

In C programming, checking whether a number is a power of two is a common problem that can be solved efficiently using bitwise operations. A power of two is any number that can be expressed as 2n where n is a non-negative integer (1, 2, 4, 8, 16, 32, etc.). Syntax bool isPowerOfTwo(int n); // Returns true if n is a power of 2, false otherwise Algorithm The key insight is that powers of two have a specific binary pattern − they have exactly one bit set to 1 (the MSB) and all other ...

Read More

Why is a[i] == i[a] in C/C++ arrays?

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 423 Views

In C programming, there's an interesting feature where array subscript notation a[i] can also be written as i[a]. This happens because of how C internally handles array indexing through pointer arithmetic. Syntax a[i] == i[a] // Both expressions are equivalent How It Works In C, E1[E2] is defined as (*((E1) + (E2))). The compiler performs pointer arithmetic internally to access array elements. Because the binary + operator is commutative, a[i] becomes *(a + i), and i[a] becomes *(i + a). Since addition is commutative, both expressions evaluate to the same memory ...

Read More

How to sort an array of dates in C/C++?

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 1K+ Views

In C programming, sorting an array of dates requires creating a structure to represent dates and implementing a custom comparison function. We use the qsort() function from the standard library to sort the array based on chronological order. Syntax void qsort(void *base, size_t num, size_t size, int (*compare)(const void *, const void *)); Method 1: Using qsort() with Custom Comparator This approach uses a structure to store date components and a comparison function that compares dates chronologically − #include ...

Read More

Matrix Multiplication and Normalization in C program

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 976 Views

In C programming, matrix multiplication and normalization are fundamental operations in linear algebra. Matrix multiplication follows specific rules where the number of columns in the first matrix must equal the number of rows in the second matrix. Matrix normalization scales each row so that its Euclidean norm equals 1. Syntax // Matrix Multiplication for (i = 0; i < rows1; i++) { for (j = 0; j < cols2; j++) { for (k = 0; k < cols1; k++) { ...

Read More

Code valid in both C and C++ but produce different output

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 216 Views

Here we will see programs that return different results when compiled with C or C++ compilers. These differences arise due to fundamental variations in how C and C++ handle certain language features. Character Literal Size Differences In C, character literals like 'a' are treated as int type, while in C++ they are treated as char type. This affects the result of the sizeof() operator − Example 1: C Code #include int main() { printf("Character: %c, Size: %d bytes", 'a', sizeof('a')); return 0; } ...

Read More

What are the differences between bitwise and logical AND operators in C/C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 8K+ Views

In C, the bitwise AND (&) and logical AND (&&) operators serve different purposes and work with different data types. Understanding their differences is crucial for correct C programming. Syntax // Bitwise AND result = operand1 & operand2; // Logical AND result = condition1 && condition2; Bitwise AND Operator (&) The bitwise AND (&) operator performs a bit-by-bit AND operation between two integers. It works on integer types and returns the same data type. Each corresponding bit is AND-ed according to these rules − 1 & 1 = 1 ...

Read More

MCQ on Memory allocation and compilation process in C

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 607 Views

Here we will see some MCQ questions on Memory Allocation and Compilation Processes in C programming language. Question 1: Union Memory Allocation What will be the output of the following code − #include #include int main() { union my_union { int i; float f; char c; }; union my_union* u; u = (union ...

Read More

Implicit Threading and Language-based threads

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 5K+ Views

Implicit threading is a programming approach where the creation and management of threads is handled by compilers and run-time libraries rather than application developers. This approach simplifies multithreaded programming by abstracting away low-level thread management details. Syntax #pragma omp parallel { // Parallel code block } OpenMP for Implicit Threading OpenMP is a widely-used implicit threading library for C, C++, and FORTRAN. It provides compiler directives and an API for parallel programming in shared-memory environments. OpenMP identifies parallel regions as blocks of code that can execute in parallel − ...

Read More

Windows thread API in the C program

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 3K+ Views

Threads are created in the Windows API using the CreateThread() function. Just as in Pthreads, a set of attributes like security information, the size of the stack, and a flag for the thread is passed to this function. In the below program, we use the default values for these attributes. Once the summation thread is created, the parent must wait for it to complete before outputting the value of Sum, as the value is set by the summation thread. Using the WaitForSingleObject() function, we perform the equivalent of pthread_join() in the Windows API, which causes the creating thread to ...

Read More

Grand Central Dispatch (GCD)

Arnab Chakraborty
Arnab Chakraborty
Updated on 15-Mar-2026 1K+ Views

Grand Central Dispatch (GCD) is a technology for Apple's Mac OS X and iOS operating systems that provides a combination of extensions to the C language, an API, and a runtime library. It allows application developers to identify sections of code to run in parallel, managing most of the threading details automatically like OpenMP. Syntax // Block syntax ^{ /* code block */ } // Dispatch queue creation dispatch_queue_t dispatch_get_global_queue(long identifier, unsigned long flags); // Async execution void dispatch_async(dispatch_queue_t queue, dispatch_block_t block); Blocks in GCD GCD introduces extensions to the C and ...

Read More
Showing 1741–1750 of 3,768 articles
« Prev 1 173 174 175 176 177 377 Next »
Advertisements