Cách lấy chuỗi nhị phân làm đầu vào trong C++

Hàm scanf() nhận hai đối số. định dạng định dạng của biến (%d trong ví dụ trên) và toán tử tham chiếu (&myNum), lưu trữ địa chỉ bộ nhớ của biến

Mẹo. Bạn sẽ tìm hiểu thêm về địa chỉ bộ nhớ và các chức năng trong chương tiếp theo


Chuỗi đầu vào của người dùng

Bạn cũng có thể lấy một chuỗi do người dùng nhập vào

Thí dụ

Xuất tên của người dùng

// Tạo chuỗi
char firstName[30];

// Yêu cầu người dùng nhập một số văn bản
printf("Nhập tên của bạn. \n");

// Lấy và lưu văn bản
scanf("%s", firstName);

// Xuất văn bản
printf("Xin chào %s. ", firstName);

Chạy ví dụ »

Lưu ý rằng bạn phải chỉ định kích thước của chuỗi/mảng (chúng tôi đã sử dụng số rất cao, 30, nhưng ít nhất thì chúng tôi chắc chắn rằng nó sẽ lưu trữ đủ ký tự cho tên) và bạn không phải chỉ định toán tử tham chiếu

Trong chương trình đã đưa vào tệp tiêu đề

// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
0 để thực hiện các phép toán trong chương trình

Chúng tôi yêu cầu người dùng nhập một số nhị phân và chuyển nó tới hàm

// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
1 để chuyển đổi thành số thập phân

Giả sử

// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
2. Hãy xem cách thức hoạt động của vòng lặp
// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
3 trong hàm
// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
1

N. = 0rem = n % 10n /= 10idec += rem * pow(2, i)1101. = 01101 % 10 = 11101/10 = 11000 + 1 * pow (2, 0) = 1110. = 0110 % 10 = 0110/10 = 1111 + 0 * pow (2, 1) = 110. = 011 % 10 = 111/10 = 121 + 1 * pow (2, 2) = 51. = 01 % 10 = 11/10 = 035 + 1 * pow (2, 3) = 130. = 0---Vòng lặp kết thúc

Vì vậy,

// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
5 ở dạng nhị phân là
Enter a binary number: 1101
1101 in binary = 13 in decimal
0 ở dạng thập phân

Bây giờ, hãy xem cách chúng ta có thể thay đổi số thập phân thành số nhị phân


ví dụ 2. Chương trình C chuyển đổi số thập phân sang nhị phân

// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}

đầu ra

Enter a decimal number: 13
13 in decimal = 1101 in binary

Giả sử

Enter a binary number: 1101
1101 in binary = 13 in decimal
1. Hãy xem cách thức hoạt động của vòng lặp
// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
3 trong hàm
// convert decimal to binary

#include 
#include 

long long convert(int);

int main() {
  int n, bin;
  printf("Enter a decimal number: ");
  scanf("%d", &n);
  bin = convert(n);
  printf("%d in decimal =  %lld in binary", n, bin);
  return 0;
}

long long convert(int n) {
  long long bin = 0;
  int rem, i = 1;

  while (n!=0) {
    rem = n % 2;
    n /= 2;
    bin += rem * i;
    i *= 10;
  }

  return bin;
}
1

N. = 0rem = n % 2n /= 2ibin += rem * ii * = 1013. = 013 % 2 = 113/2 = 610 + 1 * 1 = 11 * 10 = 106. = 06 % 2 = 06/2 = 3101 + 0 * 10 = 110 * 10 = 1003. = 03 % 2 = 13/2 = 11001 + 1 * 100 = 101100 * 10 = 10001. = 01 % 2 = 11/2 = 01000101 + 1 * 1000 = 11011000 * 10 = 100000. = 0---Vòng lặp kết thúc

Phần này sẽ thảo luận về việc chuyển đổi số nhị phân sang số thập phân. Trước khi đi đến khái niệm, chúng ta cần hiểu về số nhị phân và số thập phân. Như chúng ta biết, máy tính không hiểu những từ hoặc con số mà con người viết hoặc làm. Thay vào đó, nó chỉ hiểu 0 và 1. Ví dụ: khi chúng ta gõ một từ hoặc số trên máy tính, các phần mềm hoặc trình biên dịch khác nhau sẽ giúp chuyển đổi các số hoặc từ này thành dạng nhị phân (bit 0 và bit 1). Để máy tính có thể dễ dàng hiểu được những

Cách lấy chuỗi nhị phân làm đầu vào trong C++

Số nhị phân

Số nhị phân là một số đại diện cho thông tin hoặc dữ liệu được lưu trữ trong máy tính với sự kết hợp của các bit 0 và 1. Nó còn được gọi là hệ thống số cơ sở 2 vì nó có hai bit, 0 và 1. Đây là các số nhị phân (0 và 1) 1001, 1010, 1101, 1111, 1010101, v.v.

số thập phân

Số thập phân là số có 10 chữ số từ 0 đến 9. Cơ số của nó là 10 vì nó tập hợp 10 chữ số (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) và đại diện hoặc tạo ra toàn bộ số bằng mười chữ số này

Thuật toán chuyển đổi nhị phân sang thập phân

  1. Lấy một số nhị phân làm đầu vào
  2. Chia số cho 10 và lưu phần còn lại vào biến rem
  3. decimal_num = decimal_num + rem * base;
    Ban đầu, số thập phân là 0 và cơ số là 1, trong đó biến rem lưu trữ phần còn lại của số.
  4. Chia thương của số ban đầu cho 10
  5. Nhân cơ số với 2
  6. In phần thập phân của số nhị phân

Chuyển đổi số nhị phân thành số thập phân bằng vòng lặp while

Hãy xem xét chương trình C để chuyển đổi tổ hợp số nhị phân (0 và 1) thành số thập phân bằng cách sử dụng vòng lặp while

chương trình. c

đầu ra

Enter a binary number with the combination of 0s and 1s
1101
 The binary number is 1101
 The decimal number is 13

Giải thích về mã. Như chúng ta có thể thấy trong chương trình trên, nó yêu cầu một số nhị phân (0 và 1) từ người dùng để lưu số đó vào biến num. Tại mỗi lần lặp, vòng lặp while kiểm tra điều kiện số nhị phân và xác nhận số đã cho không được nhỏ hơn 0;

Sau đây là bước lặp của vòng lặp while, như sau

lần lặp đầu tiên

ram = 1101 % 10 => 1

thập phân_num = 0 + 1 * 1 => 1 (thập phân_val = 0, rem = 1, & cơ sở = 1)

số = 1101/10 => 110

cơ sở = 1 * 2 => 2

lần lặp thứ 2

còn lại = 110% 10 => 0

thập phân_num = 1 + 0 * 2 => 1 (thập phân_val = 1, rem = 0, & cơ sở = 2)

số = 110/10 => 11

cơ sở = 2 * 2 => 4

lần lặp thứ 3

còn lại = 11% 10 => 1

thập phân_num = 1 + 1 * 4 => 5 (thập phân_val = 1, rem = 1, & cơ sở = 4)

số = 11/10 => 1

cơ sở = 4 * 2 => 8

lần lặp thứ 4

còn lại = 1 % 10 => 1

thập phân_num = 5 + 1 * 8 => 1 (decimal_val = 5, rem = 1, & base = 8)

số = 1/10 => 0

cơ sở = 8 * 2 => 16

Chuyển đổi số nhị phân thành số thập phân bằng vòng lặp for

Hãy xem xét một chương trình bằng ngôn ngữ C để chuyển đổi tổ hợp số nhị phân (0 và 1) thành số thập phân bằng cách sử dụng hàm và mảng