问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

C++编程 将字符串转换为二进制码输出

发布网友 发布时间:2022-04-22 12:42

我来回答

5个回答

热心网友 时间:2022-06-01 17:51

可以定义一个函数,实现把一个字符转换为二进制码输出。

在函数中,先将1左移7位,就可以得到二进制值10000000,再将此值与一个字符“按位与”,然后判断其值是否为0。不为0就输出1,否则就输出0。类似的操作做8次,就可以输出一个字节的8位二进制码了。

#include<stdio.h>

void prt(char c)

{int i;

 for(i=7;i>=0;i--)

printf("%d",(c & 1<<i)!=0);

 printf(" ");

}

int main()

{char s[100];

int i;

gets(s);

for(i=0;s[i];i++)

prt(s[i]);

printf("\n");

return 0;

}

热心网友 时间:2022-06-01 17:52

我对C++某些细节规定不是太熟悉,不能全面检查您的程序,只指出两点:
一、
您的str2定义的是char型,不是整数型,故cout << str2 << endl;输出时,没有把它当成0或1,而是把它当成了ASCII码为0或1的字符,即'\0'和'\1'。
而这两个字符都属于“控制符”,显示不出来的。
纠正方法:将str2定义换成int型。
如不想改str2定义的类型,也可以另法:将str2 = str2 & 1;改成str2 = (str2 & 1)+'0';

二、
您的输出是竖排的,且低位在前高位在后。似乎不合要求吧?如需高位在前可将
str[i] >> i;
改为str[i] >> (7- i);
如需横排,则去掉endl即可。

热心网友 时间:2022-06-01 17:52

LZ能否给出样板数据,就是那个("Input.txt")数据格式是什么,我默认是这样的:
64542137
1212
#include<iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
ifstream fin("Input.txt");//文件流
while(fin)//当文件流有数据可以读取
{
string str;//字符串对象
fin>>str;//读入一行数据
for(int i=0;i<str.length();i++)//每个字符分别处理
{
char ch=str.at(i);//获取第i个字符
ch=ch-'0';//注意字符串中'0'的ASCII码是42,而整数的是0
for(int j=0;j<8;j++)
{
cout<<((ch&1)?("1"):("0"));
ch=ch>>1;//右移一位
} //for(j)
cout<<endl;//为每个字符输出换行,便于查看
}//for(i)
cout<<endl;//在换行,
}//while(fin)
cin.get();
return 0;
}//main

注意给出数据中左边是低位右边是高位,我没把他们反转,可以这样,但是我再加进去你可能吃不消,所以暂时不加进去

热心网友 时间:2022-06-01 17:53

修改如下:
int main(){
long fan;
ifstream file1("Input.txt");
//string str;
char str[200];
unsigned char str2;
int i,j,L;
file1.getline(str,200);
L = strlen(str);
// cout<<str << endl;
for (j=0;j<L;j++){
for(i=7; i>=0; i--){
str2 = (str[j] >> i) & 0x01;
cout << (int) str2 ;
}
cout << endl;
}
file1.close();
getchar();
getchar();
return 0;
}

热心网友 时间:2022-06-01 17:53

????? for(int i=0; i<8; i++){
????? str2 = str[i] >> i;
????? str2 = str2 & 1;
????? cout << str2 << endl;
==>
for(int i=0; i<str.length(); i++){
str2 = str[i];
for(int j=7; j>=0; j++) cout << (str2>>i)&1;
cout << endl;
C语言如何将字符串转换到对应的01二进制的字符串,比如AB字符就变为...

如下子程序就可以将一个字符的ASCII码按二进制形式输出:void binarystring(char c){ int i;for(i=0;i&lt;8;i++){ if (c &amp; 0x80) putchar('1'); else putchar('0');c &lt;&lt;= 1;} } 如上定义后,只要调用 binarystring('A');binarystring('B');putchar('\n');即可输出 01000001010...

C++编程 将字符串转换为二进制码输出

在函数中,先将1左移7位,就可以得到二进制值10000000,再将此值与一个字符“按位与”,然后判断其值是否为0。不为0就输出1,否则就输出0。类似的操作做8次,就可以输出一个字节的8位二进制码了。include&lt;stdio.h&gt; void prt(char c){int i;for(i=7;i&gt;=0;i--)printf("%d",(c &amp; 1&lt;...

C语言中格式输出二进制的两种方法

在我们日常的编程中,有时候需要格式化输出一个整形数据的二进制,但是在我们C语言中只有输出十进制:%d;输出十六进制:%x;输出单个字符:%c;输出字符串:%s;输出变量所在的地址:%p;而并没有这种二进制对应的格式,所以需要我们手动来实现。本篇博客给大家介绍两种方法: 1.通过库函数itoa,需要包含...

在C#中怎么把字符串转换成二进制数?

ASCIIbyte[]转成string:(byte[] = new byte[]{ 0x30, 0x31} 转成"01")string str = System.Text.Encoding.ASCII.GetString ( byteArray );byte[]转16进制格式string:new byte[]{ 0x30, 0x31}转成"3031":publicstaticstring ToHexString ( byte[] bytes ) // 0xae00cf =&gt; "AE00...

在C语言中如何将汉字或者字符串转换成二进制代码或者ASCII代码?_百度知 ...

我记得好像汉字是用点阵存储的,就是把字形用点阵表示出来,具体细节不是很清楚,字符串可以用数组存储,拆分成一个一个的字符,一个字符对应一个ASCII码

C#里面怎样把普通字符串转换成二进制并且返回字符串

/// 输入一个十进制 返回一个二进制 /// /// /// &lt;returns&gt;装换成的二进制数&lt;/returns&gt; public static string DtoB(int d){ string b = "";//判断该数如果小于2,则直接输出 if (d &lt; 2){ b = d.ToString();} else { int c;int s = 0;int n = d;while (n &gt;= 2)...

c语言 01字符串转换为二进制形式,例如字符串“1010101”转化为二...

include&lt;stdio.h&gt; include "string.h"void main (){ char buf[10];int n=0;strcpy(buf, "1010101");for(int i=strlen(buf); i&gt;-1; i--){ if(buf[i] =='1')n = 2 * n + 1;else n = 2* n;} printf("%x", n);} ...

C语言中将每个字母换成相应的8位二进制ASCII码

include"stdio.h"main(){ char s[80];unsigned char t;int i=0;printf("输入一个字符串:");gets(s);for(i=0;s[i];i++){ t=(s[i]&lt;&lt;4)+(s[i]&amp;0xF0&gt;&gt;4);//把后4位放前,前4位向后.printf("%x",t);} }

C#中如何把二进制字符串转化为二进制

打开计算器并选择程序员模式,在十进制形式下输入任意数字,然后切换成二进制,按CTRL+C,复制(使用计算器验证)。运行项目,在文本框内粘贴二进制字符串,然后点击按钮,弹出窗口显示的数字和计数器的十进制数是一致的。见代码及附图。然后逐行分析代码,理解之。有问题再问。string txt = textBox1....

如何用C语言输出二进制数据

原型: char * itoa(intvalue,char * stringprintf输出格式 二进制,intradix);参数: int值转换后的整数,char *转换后存储的字符串数组,int基数转换的十六进制数,例如2、8、10、16十六进制等.功能: 将任何类型的数字转换为字符串.中与之相反的函数是atoi.参考代码:1 include&lt;stdlib.h&gt; include...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
海口有到贵阳的汽车? 请问贵阳火车站托运书和衣服到海口怎么一个程序,价格是怎么算了?_百度... 从海口到贵阳的汽车有吗。 贵阳汽车托运到海口多少钱 慈姥竹作品译文 《慈姥竹》的原文是什么?该如何鉴赏呢? 3dtouch是什么意思?? ...人有四种福,两大凶德”,那么这句话的具体意思是什么? 滑动变阻器接法是一上一下,在电路图中怎样判断哪边是接上接线柱哪... 国产吉他牌子排行榜 C语言帮忙对一下答案 ug有没有使用技巧? UG里怎样能使用中文文件名 要如何拍身份证照片才能达到200K以下? 描写人物特点的作文200字 UG建模有哪些技巧? 为什么卡西欧PRT-B50-2看起来很大,但是戴在手上比较轻呀,求解? 阔凿是什么五金工具?急 急 急 刚入手的卡西欧PRT-B50-2很喜欢,蓝色的大气,就是不知道怎么保养呢? 种子包衣剂为什么是红色的? prt文件打不开(急!!)能解决追200分~!!! 卡西欧的PRT-B50-2与其他几款有什么不同呢? prt电轴72/200/64度正常吗 怎么样才可以看出一个男生喜欢谁 怎么才能知道那个男孩喜不喜欢我 (急求)怎么判断男生喜欢你 怎么样判断那个男生喜欢你 怎样看出那个男生喜欢你 怎么样知道哪个男生喜欢我捏 怎样才能确定那个男生是真的喜欢你呢? 网的意思 以书信的形式写一篇感恩父母的作文,200字左右 以书信的形式写一篇感恩父母 以一封家书的形式写,表达对父母的感激之情咋写 给父母的一封家书作文范文5篇 五年级感恩父母的一篇作文(按书信格式写)450字以上 作文:以一封家书的形式,表达对父母的感激之情 求一封感谢父母的家书,600字左右 用书信的格式写感恩父母的作文 感恩父亲的一篇作文怎么写 写一封感谢父母的书信,要写信的那种形式! 现在安卓手机上什么视频下载软件能下的电影最全 安卓系统手机内如何开启chrome谷歌浏览器中的夜间模式 最新的百度浏览器有没有视频下载功能? 用什么软件可以下载到囚徒健身中文版的全部视频? 手机安卓版的360浏览器怎么下载视频 全息视频下载app 全民小视频支持安卓的几版本的 苹果笔记本键盘最上面一排F1到F12都代表什么意思 苹果手机突然黑屏,但有声音是为什么?
  • 焦点

最新推荐

猜你喜欢

热门推荐