二进制存储问题
来源:互联网 发布:ubuntu 安装mysql 5.1 编辑:程序博客网 时间:2024/06/05 19:25
记录一下刷剑指offe遇到的记忆模糊的概念
题目是 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
一开始我的思路是像手算一样不断除以2 结果发现用平方开根号+1 算负数结果不对 翻翻书发现自己对负数在电脑中的存储方式搞错了
自己想当然的认为负数的储存就是单纯的把负数绝对值的第一位从0变成1 在此基础上代码自然错的离谱
二进制在内存中的存储是其绝对值的取反+1 整形-100在计算机的表示中‘1’有30个
int NumberOf1(int n) {int count = 0;int flag = 1;while (flag != 0) {if ((n & flag) != 0) {count++;}flag = flag << 1;}return count;}解法思路是让一个整形的数没一位分别为1 去与 结果非0则代表该位上是1
ps:这题要求连同符号为算在内(之所以可以用第一位作为符号位因为中间轴正好在第一位 )
字符的区间 -128 ~ +127 0算在正数里相加2^8种可能
。。。。。。写的好乱
0 0
- 二进制存储问题
- 二进制问题
- VB二进制存储数据
- Dictionary<>二进制存储
- 拿二进制存储文件
- MySQL存储二进制数据
- MySQL存储二进制数据
- 二进制存储大数据文件
- 二进制数据存储
- 内存中的二进制存储
- 整数的二进制存储问题(以 short 和 unsigned short 为例)
- 用mysql存储二进制数据流
- C#实现文件二进制存储
- 二进制压缩存储+广搜;
- 用mysql存储二进制数据流
- C#实现二进制存储读取
- 用mysql存储二进制数据流
- 存储、读取二进制的图像
- nginx配置文件
- 给出一个数字, 在小数点前边和后边,都以三位用逗号间隔
- C++编程教程_箭头(->)运算符的重载
- 字符串排列组合
- linux 操作数据库
- 二进制存储问题
- 数据库_MySQL 游标的使用和结果集的遍历
- fatal error C1083: 无法打开预编译头文件: “*.pch”: No such file or directory
- Android-内功篇-Android内存泄漏分析及调试
- 好友消息和群消息区别
- 基于S3C6410的ARM11学习(二) bootloader开发准备
- PermGenspace错误解决方法java.lang.OutOfMemoryError:Perm
- js 判断空格并去除空格
- iOS 设计模式之工厂方法模式(FactoryMethod)