当用double读取时,如果是int型会读取int后32位值,而当用int读取时,如果是double型会只读取前32位,出来的都是垃圾值。 如果在内存中float型自动会优化成double存储。
using namespace std; int GetCount(int n) { int m=0; while(n) { n&=(n-1); m++; } return m; } int main() { int a; cin>>a; cout<<GetCount(a)<<endl; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 假设我们把这个整数减去1,那么原...