Code Bye

为什么二进制转十进制中要用char型输入二进制数 能不能用Int型

#include<iostream>
using namespace std;
double power(double x,int n);
int main()
{
int value=0;
cout<<“Enter an 8 bit binary number:”;
for(int i=7;i>=0;i–)
{
char ch;
cin>>ch;
if(ch==”1″)
value+=static_cast<int>(power(2,i));
}
cout<<“Decimal value is “<<value<<endl;
return 0;
}
double power(double x,int n)
{
double val=1.0;
while(n–)
val*=x;
return val;
}
解决方案

10

原因是 int 输入的不是字符串,或字符。而是整数
不能直接拆分1111 中的每个1,
也就是说输入的数据,跟二进制ASCII表示无关

30

电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址;
人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么二进制转十进制中要用char型输入二进制数 能不能用Int型