char as int

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
char a;
a=1;
char b;
b=2;
char c;
char d;

a=45;
b=135;
c=b-a;                 //work as int
cout<<c<<endl;
cout<<(int)c<<endl;

d=b/a;               ////// do not work
cout<<d<<endl;
cout<<(int)d<<endl;
a=330;
cout<<a<<endl;
}

---------------

Z
90

-2
J
请按任意键继续. . .

时间: 2024-11-05 18:44:54

char as int的相关文章

error: cast from ‘char*’ to ‘int’ loses precision

编译时出现错误:         error: cast from ‘char*’ to ‘int’ loses precision 原因:程序中存在 char* addrCom; addrCom= ......//赋值 if(-1 == (int)addrCom) //导致编译出错 { ...... } 上面是隐式转换,将其改为标准C++显示类型转换:static_cast<int>或这是reinterpret_cast<int> 依然是: error: cast from ‘c

CString、char、int、string相互转化

相比于C#,C++的类型转换更为麻烦.下面列举几种主要的类型转换,当然转换的方法有很多,以下可能是最简单.有效的方式了,以后在工作和学习中再逐渐添加其他的类型转换. CString转char* CString file=GetFilePath()+"parameter.txt";    char* pszFileName=(LPSTR)(LPCTSTR)file; string转CString string str; CString ss = str.c_str(); int转CStr

C++ 中 char 与 int 转换问题

itoa 功  能:把一整数转换为字符串 函  数:char *itoa(int value, char *string, int radix); 解  释:itoa 是英文integer to array(将 int 整型数转化为一个字符串,并将值保存在数组 string 中)的缩写. 参  数:value: 待转化的整数.          radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制.          *s

char,short ,int ,long,long long,unsigned long long数据范围

速查表: char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)doub

【C语言】【笔试题】编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include <stdio.h> static int i=0; int itob(int n,char s[],int b) { if(n<2) { s[i]=n+'0'; } else { itob(n/2,s,b); //递归 i++; n=n%2; s[i]=n+'0'; } s[i+1]='\0';//结束标志 return 0; } int main () { char s[20]; int num=0; scanf("%d",&num); i

【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include<stdio.h> void itob(int n,char s[], int b) {  int i=1;  for(;i<=32;i++)    //共循环了32次,保证得到32位的二进制数  {   s[i-1]= n % b;   //数组是从编号0开始的,一直到编号31结束   n = n/b ; //用模除的方法依次得到每位进制数  }  for(i=32;i>0;i--)  {   printf("%d",s[i-1]);   }

read(char[] b,int off,int len) 和read(char[] b)的区别

今天在读取文件里的十六进制数据的时候,采用java的read(char[] b)方法进行读取,结果发现打印的数据和文件里的数据结尾不一致.后来一看还有一个read(char[] b,int off,int len) 方法.就去查了一个它们的区别,正好read(char[] b,int off,int len) 可以解决我的问题.下面是网上参考的资料,很容易懂. 这是read(char cbuf[])方法的源码,可以看出,read方法其实是调用了read(char[] b,int off,int

编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

在本题中,二进制.八进制及十进制算法思路一样,采取模除的方式,输出各个位置的数,接着采用逆序输出.在十六进制中"0123456789abcdef"[num%16],求出各位的数字. #include<stdio.h> void reverse(int len,char arr[]) //逆置 {  int left =0;  int right =len -1;  while(left < right)  {   char temp = arr[left];     

C语言补漏(1)--- char到int赋值的一个陷阱

作为一个C的新手(虽然学的第一门语言就是C,可是用C实际开发项目却是最近的事情),对使用C过程中遇到的各类问题.疑惑.知识漏洞进行弥补无疑是非常有必要的,于是决定将每次遇到的知识漏洞写到博客上. 今天在写代码的过程中对一个函数进行了重构,函数的用处是将一块内存中的内容打印成16进制表示的字符串:很悲哀的输入的是一个char指针:char* buffer:当调用Format("%02X",*buffer)的时候出现问题了, 比如:0xB0输出变成了:“FFFFFFB0”:最后发现是cha

进制数相加 char* sum(int n,char* num1,char* num2)

功能: 第一个参数n 代表多少进制,最大就是36进制,从0到9,然后a到z代表10到35. char* num1 和char* num2 分别接受两个数字字符串,然后相加得到的结果返回 #include<iostream> using namespace std; //n 表示进制数 //a 表示操作数1 //b 表示操作数2 //jy 表示进位数 //jy1 是否进位 char sum1(int n,char a,char b,int jy,int* jy1) { int num1=0; i