c++怎么讲一个整型或者字符串 转换成 二进制

MapHacker 2014-03-08 04:39:29
比如说有一个整型数字3
占16位
现在希望把它变成二进制输出到文件中 就是把二进制11 输出到文件中 占2位

注意 我要的是位数 不是把11转换成字符串的“11”;
要占2位的二进制11
...全文
409 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chollyliu 2014-03-12
  • 打赏
  • 举报
回复
将字符或者数字和1按位与运算,然后再进行移位运算,将得到的结果写出来就ok了
你怎么了熊吉 2014-03-08
  • 打赏
  • 举报
回复
引用 11 楼 cdsnfresh 的回复:
[quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
可以按bit写入txt[/quote] 怎么写?用哪个函数?
cdsnfresh 2014-03-08
  • 打赏
  • 举报
回复
引用 6 楼 mougaidong 的回复:
我是没听过按bit写入的,我知道的最小操作单位是Byte。 [quote=引用 5 楼 u013601460 的回复:] [quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote][/quote]

int m=0;
for(int u=1;u<x;u<<=1,++m); //计算一个数的二进制位数
后面的就可以用二进制输出到文件了
cdsnfresh 2014-03-08
  • 打赏
  • 举报
回复
引用 2 楼 czarten 的回复:
好像至少要按字节写入吧 可以按bit写入吗?
可以按bit写入txt
你怎么了熊吉 2014-03-08
  • 打赏
  • 举报
回复
引用 9 楼 u013601460 的回复:
[quote=引用 7 楼 czarten 的回复:] [quote=引用 5 楼 u013601460 的回复:] [quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote] 问题是哪有5位的文件,肯定是整数字节啊[/quote] 看下楼下的问题 谢谢[/quote] 原来是Huffman,你把这5位先存在int里(用位操作),然后接下面5位,再接下面5位,满32位就fwrite出去
MapHacker 2014-03-08
  • 打赏
  • 举报
回复
引用 7 楼 czarten 的回复:
[quote=引用 5 楼 u013601460 的回复:] [quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote] 问题是哪有5位的文件,肯定是整数字节啊[/quote] 看下楼下的问题 谢谢
MapHacker 2014-03-08
  • 打赏
  • 举报
回复
引用 6 楼 mougaidong 的回复:
我是没听过按bit写入的,我知道的最小操作单位是Byte。 [quote=引用 5 楼 u013601460 的回复:] [quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote][/quote] 好吧 其实我们的课程实验用Huffman 把一段文本编码 压缩 其他都实现 但是我的压缩文件比原文件还大 老师说是我存的方式不对 应该用二进制 我就不知道怎么搞了 把写入方式改成ios::binary也是比原文件 照这么说 是不能比原文件小了?
你怎么了熊吉 2014-03-08
  • 打赏
  • 举报
回复
引用 5 楼 u013601460 的回复:
[quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote] 问题是哪有5位的文件,肯定是整数字节啊
turing-complete 2014-03-08
  • 打赏
  • 举报
回复
我是没听过按bit写入的,我知道的最小操作单位是Byte。
引用 5 楼 u013601460 的回复:
[quote=引用 2 楼 czarten 的回复:] 好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做[/quote]
MapHacker 2014-03-08
  • 打赏
  • 举报
回复
引用 2 楼 czarten 的回复:
好像至少要按字节写入吧 可以按bit写入吗?
假如说我有一个字符串10011 占5*16位 我要把它输出到一个文件中 想让输出二进制 10011 只占5位 怎么做
MapHacker 2014-03-08
  • 打赏
  • 举报
回复
引用 1 楼 quarryman 的回复:
按二进制方式打开文件并写入
用什么方式写入的呢 我用了几个方式写入都是ascii的大小 求大神给写个小例子
你怎么了熊吉 2014-03-08
  • 打赏
  • 举报
回复
引用 1 楼 quarryman 的回复:
按二进制方式打开文件并写入
二进制和文本方式只跟换行有关系吧?
你怎么了熊吉 2014-03-08
  • 打赏
  • 举报
回复
好像至少要按字节写入吧 可以按bit写入吗?
采石工 2014-03-08
  • 打赏
  • 举报
回复
按二进制方式打开文件并写入

64,637

社区成员

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

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