(C语言)char类型与int类型相加

 1 #include <stdio.h>
 2
 3 int main(void) {
 4     char a = 127;
 5     int b = 4;
 6     int c = a + b;
 7     a += b;
 8     printf("c=%d",c);
 9     //printf("c=%s",c);
10     printf("a=%d",a);
11     //printf("a=%c",a);
12     //printf("a=%s",a);
13     // your code goes here
14     return 0;
15 }
结果c=131 a=-125char类型是1 byte = 8 bits
正数的原码,补码,反码都相同,都等于它本身 负数的补码是:符号位为1,其余各位求反,末位加1 反码是:符号位为1,其余各位求反,但末位不加1 
在计算机中,数据是以补码的形式存储的补码 0111 1111 + 0000 0100     = 1000 00011补码 = 1111 11101 = - (127-2)= -125
int c = a + b;
a 和 b直接转换为int类型相加!
    printf("c=%s",c);

此句发生错误。

类型之间计算时候转换的规则     
     double<--float
     ↑
     long
     ↑
     unsigned
     ↑
     int<--char、short
↑表示运算两边类型不一致时的转换顺序、<-表示即便两边类型一致依然要转换为箭头指向的数据类型再进行运算  
整型提升

整型提升是C程序设计语言中的一项规定:在表达式计算时,各种整形首先要提升为int类型,如果int类型不足以表示则要提升为unsigned int类型;然后执行表达式的运算。

http://blog.csdn.net/dyllove98/article/details/9004872

时间: 2024-10-01 07:44:24

(C语言)char类型与int类型相加的相关文章

char类型与int类型相加

char类型是16位的,底层采用unicode编码保存.char类型是可以直接赋值给int类型的,因为是16位到32位低到高.举个例子比如int i='1';打印i的值是49.char类型跟int类型进行计算的时候会自动转换为int类型比如System.out.println('1'+1);输出结果是50.char类型的'='换成int是61 原文地址:https://www.cnblogs.com/lxl87/p/11555914.html

pandas把&#39;&lt;m8[ns]&#39;类型转换为int类型进行运算

工作中经常碰到两列数据为date类型,当这两列数据相减或者相加时,得到天数,当运用这个值进行运算会报错:ufunc true_divide cannot use operands with types dtype('int64') and dtype('<m8[ns]'),我们只需要把'<m8[ns]'类型数据转换为int就可以继续运算 l = df1['计划结束时间'] - df1['计划开始时间']为: 这个数据是不能进行加减运算的 L = l.values / (24*60*60*100

java中如何将Object类型转换为int类型

如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {} 也可以先判定一下是否是Integer //可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toSt

关于java中char类型和int类型相加结果的面试题

运行结果为 3 51 C 故而总结了以下几点: 举例子说明一下. System.out.println('0'+'A');// 48+65 = 113 未指定类型--输出int System.out.println((char)('0'+'A'));// q 强转char --输出char System.out.println(10+'A'); //75 未指定类型--输出int System.out.println((char)10+'A'); //75 未指定类型--输出int System

34 char类型转换为int类型

#include<iostream> #include<cstdlib > using namespace std; int main() { char a=101; int sum=200; a+=27;sum+=a; printf("%d", a); cout<<sum<<endl; } 分析:char类型的范围是-128---+127,当a+=27,之后a的值超出可表示范围会变为-128. a为char型,-128~127,a=10

double类型转换为int类型四舍五入工具类

package com.qiyuan.util; import java.math.BigDecimal; import java.text.DecimalFormat; public class GetInt { /** * (1)四舍五入把double转化int整型,0.5进一,小于0.5不进一 * @param number * @return */ public static int getInt(double number){ BigDecimal bd=new BigDecimal(

C语言中long类型,int类型

long类型表示long int,一般简写为long,注意long不表示long double.虽然有时候会有sizeof(long)=sizeof(int),long int与int是不同的: 16位系统:long是4字节,int是2字节32位系统:long是4字节,int是4字节64位系统:long也是4字节,int是4字节 标准只规定long不小于int的长度,int不小于short的长度. 即sizeof(long)>=sizeof(int)

MySQL中int类型的字段使用like查询方法

方法参考自: http://stackoverflow.com/questions/8422455/performing-a-like-comparison-on-an-int-field 也就是使用CAST转换指定字段,然后进行比较.具体样例代码如下: SELECT ProductID, ProductName FROM Products WHERE CAST(ProductID as CHAR) LIKE '%15%' 但是这样做的话,MySQL不能使用对应int字段索引,而且like本身就

基本类型转string类型的方法

1:基本类型的值直接+“  ”: 2:包装类的静态方法的tostring(参数)方法,不是object的tostring方法 public String toString() 3:string类的静态方法valueOf(参数). //将基本类型转换为string类型 int num=666; String s=num+""; System.out.println(s+100); String s1=Integer.toString(100); System.out.println(s1