二进制的存储形式

yorkzjy 2009-11-18 10:42:59
小弟正想写进一个数到文件,也想搞清楚里面是怎样存储的。写了一下程序,不知道正确不。
a=1 的时候有点奇怪。其他的情况应该正常。听说二进制是以什么补码之类的东西存进计算机里面的,我不懂这个东西了,恳请高手指教了。


int main()
{

uint64_t a =1;
cout<<sizeof(uint64_t)<<endl;


for( int i = sizeof(uint64_t*8); i>=0; i--)
{
cout<< ((a>>i)&1);


}


return 0;
}

...全文
116 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2009-11-18
  • 打赏
  • 举报
回复
sizeof(uint64_t*8); 这是多少?
yorkzjy 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cphj 的回复:]
C/C++ codeuint64_t a=1;
ofstream ofs("data.txt");// 定义一个输出流文件ofs<< a<< endl;// 直接输出就行了
[/Quote]

谢谢,可能我问的方式不太清楚吧~~
yorkzjy 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shuilongyin_00 的回复:]
可查阅“计算机文化基础”

补码:
        正数  原码
        负数  反码+1
[/Quote]

好像我输出的是不同的。上面的程序如果没有错误的话。
shuilongyin_00 2009-11-18
  • 打赏
  • 举报
回复
可查阅“计算机文化基础”

补码:
正数 原码
负数 反码+1
cphj 2009-11-18
  • 打赏
  • 举报
回复
uint64_t a = 1;
ofstream ofs("data.txt"); // 定义一个输出流文件
ofs << a << endl; // 直接输出就行了
yorkzjy 2009-11-18
  • 打赏
  • 举报
回复
人气
yorkzjy 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bartlebee 的回复:]
sizeof(uint64_t*8); 这是多少?
这是什么东西?完全乱写一通
[/Quote]
没有乱写。

前面的定义我忘记放进来了。

uint64_t 是8位的,乘以8 就是 64 了。

随便,反正我问题解决了。

结贴
王旺旺旺 2009-11-18
  • 打赏
  • 举报
回复
这就牵扯到文件格式设计的问题了。
bartlebee 2009-11-18
  • 打赏
  • 举报
回复
sizeof(uint64_t*8); 这是多少?
这是什么东西?完全乱写一通
lovesi3344 2009-11-18
  • 打赏
  • 举报
回复
同楼上问

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧