Một số có thể được nhân cho 2 bằng cách sử dụng toán tử bitwise. Cách làm là dùng toán tử dịch trái (left shift) và dịch các bit sang trái 1 vị trí. Kết quả là gấp đôi số ban đầu.
Ví dụ
using System;
namespace BitwiseDemo
{
class Example
{
static void Main(string[] args)
{
int num = 25, result;
// Nhân 2 bằng cách dịch trái 1 bit
result = num << 1;
Console.WriteLine("Số ban đầu: {0}", num);
Console.WriteLine("Số nhân 2: {0}", result);
}
}
}
Kết quả
Số ban đầu: 25 Số nhân 2: 50
Giải thích
Số 25 ở dạng nhị phân: 0001 1001
Sau khi dịch trái 1 bit (<< 1): 0011 0010 = 50
Mỗi lần dịch trái 1 bit tương đương với nhân 2 (với số nguyên không dấu hoặc số dương không tràn). Tương tự, dịch phải 1 bit (>>) tương đương chia 2 (lấy phần nguyên).
Lưu ý: Với số âm trong hệ nhị phân bù 2 (two's complement), dịch trái vẫn nhân 2 nhưng có thể gây tràn số (overflow).