七段显示的程序,实现键盘输入一个数,显示出该数的七段显示。
C语言七段显示_休闲#include <iostream>
C语言七段显示_休闲
C语言七段显示_休闲#include <vector>
C语言七段显示_休闲
C语言七段显示_休闲#include <algorithm>
C语言七段显示_休闲
C语言七段显示_休闲#include <string>
C语言七段显示_休闲
C语言七段显示_休闲using namespace std;
C语言七段显示_休闲
C语言七段显示_休闲// 实现输入一个数字,输出这个数字的 七段显示形式
C语言七段显示_休闲
C语言七段显示_休闲// 每个数字用一个字节表示
C语言七段显示_休闲
C语言七段显示_休闲
C语言七段显示_休闲//0到9的表示
C语言七段显示_休闲char numbers[] = {0x7D, 0x28, 0x37, 0x57, 0x5A, 0x4F, 0x6F, 0x54, 0x7F, 0x5E};
C语言七段显示_休闲
C语言七段显示_休闲    
C语言七段显示_休闲
C语言七段显示_休闲void printN(const string& n);
C语言七段显示_休闲
C语言七段显示_休闲    
C语言七段显示_休闲
C语言七段显示_休闲int main()
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲string n;
C语言七段显示_休闲
C语言七段显示_休闲while (cin >> n)
C语言七段显示_休闲
C语言七段显示_休闲printN(n);
C语言七段显示_休闲
C语言七段显示_休闲return 0;
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲    
C语言七段显示_休闲
C语言七段显示_休闲bool getBit(char number, char c)//七段显示的该段是否显示
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲return static_cast<bool>(number & c);
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲    
C语言七段显示_休闲
C语言七段显示_休闲void printN(const string& n)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲vector<int> v;
C语言七段显示_休闲
C语言七段显示_休闲for (size_t i = 0; i < n.length(); ++i)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲v.push_back(n[i]-'0');
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲for ( i = 0; i < v.size(); ++i)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 4))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " _ ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "     ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲cout << endl;
C语言七段显示_休闲
C语言七段显示_休闲for ( i = 0; i < v.size(); ++i)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 8))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "|";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 2))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "_";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 16))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "|";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲cout << endl;
C语言七段显示_休闲
C语言七段显示_休闲for ( i = 0; i < v.size(); ++i)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 32))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "|";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 1))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "_";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲if (getBit(numbers[v[i]], 64))
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << "|";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲else
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲cout << " ";
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲}
C语言七段显示_休闲
C语言七段显示_休闲cout << endl;
C语言七段显示_休闲
C语言七段显示_休闲}
编程珠玑习题3.7.8  编写一个使用5个七段显示数字来显示16位正整数的程序。输出为一个5个字节的数组,当且仅当数字j中的第1段点亮时,字节j中的位i置1
2^16 = 65536个数。所以5个七段显示器肯定是够用的。
首先可以预处理一下,把 {0, 2, 3, 4, 5, 6,7,8,9}相应的8个bit置1之后的值保存到一个数组中。
C语言七段显示_休闲char rec[10]= {0x7D, 0x28, 0x37, 0x57, 0x5A, 0x4F, 0x6F, 0x54, 0x7F, 0x5E};
C语言七段显示_休闲
C语言七段显示_休闲char temp[5];
C语言七段显示_休闲
C语言七段显示_休闲char *get(int n)
C语言七段显示_休闲
C语言七段显示_休闲{
C语言七段显示_休闲
C语言七段显示_休闲         int iter = 4;
C语言七段显示_休闲
C语言七段显示_休闲         memset(temp, 0, sizeof(temp));
C语言七段显示_休闲
C语言七段显示_休闲         while (n)
C语言七段显示_休闲
C语言七段显示_休闲         {
C语言七段显示_休闲
C语言七段显示_休闲                    temp[iter--] = rec[n % 10];
C语言七段显示_休闲
C语言七段显示_休闲                    n /= 10;
C语言七段显示_休闲
C语言七段显示_休闲         }
C语言七段显示_休闲
C语言七段显示_休闲         while (iter>= 0) { temp[iter] = rec[0]; iter --;}
C语言七段显示_休闲
C语言七段显示_休闲         return temp;
C语言七段显示_休闲
C语言七段显示_休闲}
该代码中数的高位对应着数组的大的下标