Я пытаюсь преобразовать 5 цифр zipcode в 27 цифр штрих-кода (с 0 и 1) и наоборот. Первая и последняя цифры штрих-кода всегда равны 1. Удалите их, оставляя 25 цифр. Разделить на 5 цифр каждый, слева направо цифры кодируют значения 7, 4, 2, 1, 0. Если умножить на соответствующее значение с цифрой и вычислить сумму, мы можем получить первое число zipcode. Так, например, 25 цифр штрих-кода являются 10100 10100 01010 11000 01001, то почтовый индекс будет 99504.C++ Сравнение целых чисел один за другим
1 х 7 = 7
0 х 4 = 0
1 х 2 = 2
0 х 1 = 0
0 х 0 = 0
сумма = 9
// main.cpp
#include <iostream>
#include <iomanip>
#include "ZipCode.h"
using namespace std;
int main()
{
ZipCode zip1(99504);
ZipCode zip2(12345);
ZipCode zip3(67890);
ZipCode zip4("100101010011100001100110001");
ZipCode zip5("110100001011100001100010011");
ZipCode zip6("100011000110101000011100101");
cout << "Digits" << " " << "Bar Code" << endl;
cout << zip1.getZipCode() << setw(35) << zip1.getBarCode() << endl;
cout << zip2.getZipCode() << setw(35) << zip2.getBarCode() << endl;
cout << zip3.getZipCode() << setw(35) << zip3.getBarCode() << endl;
cout << endl;
cout << zip4.getZipCode() << setw(35) << zip4.getBarCode() << endl;
cout << zip5.getZipCode() << setw(35) << zip5.getBarCode() << endl;
cout << zip6.getZipCode() << setw(35) << zip6.getBarCode() << endl;
return 0;
}
Теперь вот мой вопрос: В getZipCode(int num){}
, как мне сравнить каждое целочисленное значение и оценить его как штрих-код? Например, в main()
говорится: ZipCode zip1(99504);
. Поскольку 99504 является целым числом, как я могу оценить 9 для штрих-кода, а затем оценить следующий и т. Д.?
Посмотрите на этот пост: [? МЕТОДИЧЕСКИЕ расколоть Int в его цифр] (http://stackoverflow.com/questions/4261589/howto-split-a-int-into-digit-цифры) –
Подход с мертвой точки мозга должен был бы сбрасывать число и получать доступ к символам ... –
Обратите внимание, что бит, который * кодирует * '0', на самом деле является [ бит четности] (https://en.wikipedia.org/wiki/Parity_bit). – Jarod42