char变量做除法的问题

问题源地址:http://q.cnblogs.com/q/34775/

问题描述:

 1  #include<iostream.h>
 2 #include<vector>
 3 #include<string>
 4 using namespace std;
 5 int main()
 6 {
 7  char c_i=5;
 8  char c_p=2;
 9  char c_r=c_i/c_p;
10  cout<<(int)c_r;    //此输出和 cout<<c_i/c_p;可以出结果;
11                            //cout<<c_r;会出来一个圈(不认识是什么符号)  
12 }
13 想问下作用的机理?
14 char/char出来是char 还是int? 对此char“除/”的过程是如何运行的?

解答:

/的左右操作类型为数值,其实char本身就是一个整形数据,可以看一下ASCII表,char/char得到的是一个整形数据,对char做/操作的时候会将char看做整形数据。具体怎么个过程,看一下反汇编。

时间: 2024-09-09 14:29:46

char变量做除法的问题的相关文章

正则-preg_replace_callback 怎么调用本函数的变量做替换值

问题描述 preg_replace_callback 怎么调用本函数的变量做替换值 function cc(){ $str="123456789"; $pre="/([123]+)/"; $aa=array("123"=>"fdfd"); $ss=preg_replace_callback($pre, $aa[$1],$str) } aa是这个函数里的数组,,,我正则想用这个数组里的值去换,, preg_replace_

struts2标签在页面做除法,保留小数的问题

问题描述 各位大拿,Hello,有个struts标签的问题想请教下.<s:textfieldtitle="价格"name="Price"value="%{Price/10000}"/>中间那个%{Price/10000}做除法,结果在页面上显示取整的值,而没有小数,例如,%{125600/10000}在页面上显示13,而不是12.56.请问有什么方法struts标签在页面上做除法,显示小数,而不取整. 解决方案 解决方案二:float

unix-还有char变量定义那行无法编译

问题描述 还有char变量定义那行无法编译 #include"unp.h" int main(int argc,char ** argv) { int sockfd,n; char recvline[MAXLINE +1]; struct sockaddr_in servaddr; if(argc != 2) err_quit("usage:a.out"); if((sockfd = socket(AF_INET,SOCK_STREAM,0)) err_sys(&q

java基础-System.out.println()输出自定义类中的char[]变量

问题描述 System.out.println()输出自定义类中的char[]变量 大家好:我在编程时遇到system.out.println输出问题 public static void main(String[] args) { Solution sol=new Solution(); sol.tmp=new String(""12345600024402000"").toCharArray();//这里用toCharArray()是因为方程输入类型是char[

visual studio-128以后的char变量输出问题,求大神解答

问题描述 128以后的char变量输出问题,求大神解答 是用VS2015写的代码,执行之后的结果是这样的 请问是怎么来的 解决方案 在你的控制面板,区域选项中设置非unicode字符默认代码页为英文 在你的控制台窗口右上角图标点下,选择属性,字体选择英文字体 就可以显示>127的字符了. 解决方案二: 应该就是大于127之后由2位凑成一个中文字符. 解决方案三: 支持楼上说的中文字符的说法 解决方案四: 中文字符 解决方案五: 乱码像中文而已,跟中文没关系 解决方案六: 可能是代码页乱掉了,建议

Proc中使用char数组、VARCHAR数组和char变量进行DELETE操作具体行数的细微区别

EXEC SQL BEGIN DECLARE SECTION; char a[10000][3]; VARCHAR b[10000][31]; char c[3]; EXEC SQL END DECLARE SECTION; ... int delete_rows=10000; ... 1. CHAR类型数组变量 EXEC SQL for :delete_rows delete FROM table_name WHERE a= :a; 由于char对应于Oracle的char类型,因此若有空格,

如何用flash做除法计算题

Math,.floor();   向下取整如: a=100;   b=7;   c=Math.floor(a/b);   d=a-b*c;   c是结果,d是余数.

perl用变量做句柄介绍_perl

复制代码 代码如下: #!/usr/bin/perl -wuse strict;use warnings;use FileHandle;my %fh;my @array = (1..10);for(1..5){        open $fh{$_},">$_.txt" or die;}for(1..5){        #print $fh{$_} "$_\n";  此处错误        $fh{$_}->print( "$_\n"

指针变量做参数-这两个调用函数为什么所得结果会不一样

问题描述 这两个调用函数为什么所得结果会不一样 ·······swap(ponter1,pointer2);····· void swap(int *p1,int*p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } 和 void swap(int *p1,int *p2) { int *p; p=p1; p1=p2; p2=p; } 两个都是函数定义(调用函数),为什么第一个是对的,而第二个是错的. 解决方案 第二个方法,交换的结果是不是和原来一样呢,其