9.23 Intel Flex-SH-software五面
实现补码转int函数
用宏实现SIZEOF
#include <bits/stdc++.h> using namespace std; int num(vector<int> input) { int flag = 0; int value = 0; int len = input.size(); if (len != 32) return -1; if (input[0] == 0) { flag = 0; for (int i = 1; i < 32; i++) { value = 2 * value + input[i]; } } else { for (int i = 1; i < 32; i++) { value = 2 * value + (1 - input[i]); } value++; flag = 1; } if (flag) value = -value; // if (value < INT_MIN || value > INT_MAX) return -1; return (int)value; } #define SIZEOF(a) ((&a + 1) - &a) int main() { //int a; //cin >> a; // vector<int> testCase = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; // vector<int> testCase(32, 0); // testCase[0] = 1; // cout << num(testCase) << endl; // int a = INT_MIN; // int b = -a; // cout << a << endl; // cout << b << endl; int x; int y[10]; auto p = &y; // int * int [] cout << SIZEOF(x) << endl; // 4 cout << SIZEOF(y) << endl; // 40 }
用宏实现SIZEOF
inline
条件编译
多线程调试
#2021届秋招进度交流#