Python中文
首页
教程
问答
标签
搜索
登录
注册
Python与C:不同的输出
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个小程序,可以把10进制的数字转换成36进制的数字。下面是Python代码,它按预期工作。你知道吗</p> <pre class="lang-python prettyprint-override"><code>def numToKey(num): start = 0x04; i = 0; for i in range(0,num): start+=1 return start; def largeNumToKeyboard(num): a = num / 1296; ar = num % 1296; b = ar / 36; c = ar % 36; a = numToKey(a); b = numToKey(b); c = numToKey(c); newb = b; if(a == b): newb = 0x2D; if(c == b): c = 0x2E; print a,newb,c print largeNumToKeyboard(0) largeNumToKeyboard(200) </code></pre> <p>输出为</p> <pre><code>4 45 46 4 9 24 </code></pre> <p>“4 45 46”正确表示0,“4 9 24”正确表示200。你知道吗</p> <p>但问题是,在我把它转换成C代码后,它就停止工作了。你知道吗</p> <pre><code>#include <stdio.h> int main(int argc, char **argv) { printf("hello world\n"); largeNumToKeyboard(0); largeNumToKeyboard(200); return 0; } char numToKey(char num) { char start = 0x04; char i = 0; for (i = 0; i < num; i++) { start++; } return start; } void largeNumToKeyboard(int num) { char a = num / 1296; char ar = num % 1296; char b = ar / 36; char c = ar % 36; a = numToKey(a); b = numToKey(b); c = numToKey(c); char newb = b; if(a == b){ newb = 0x2D; } if(c == b){ c = 0x2E; } printf("%d ",a); printf("%d ",newb); printf("%d\r\n",c); } </code></pre> <p>现在输出是</p> <pre><code>4 45 46 4 45 46 </code></pre> <p>我不明白为什么对于200的输入,C代码给出了错误的输出,而python代码给出了正确的输出。我觉得这和模量有关,但我搞不懂。请帮帮我!谢谢!你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在C代码中,应该使用int类型。字符类型的范围仅为0到255。你知道吗</p> <pre><code>char a = num / 1296; char ar = num % 1296; char b = ar / 36; char c = ar % 36; the C code </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
区分轴上的像素大小
6 回答
区分过度拟合与良好预测
10 回答
区分通过POST接收的数据并在Cherrypy中获取
3 回答
区分重写和重载
1 回答
区分金贾二号的类型
5 回答
区别:IF IN和IF==python
3 回答
区别:list.append()与incrementequal?
8 回答
区别:创建在启动wx应用程序时不“阻止”控制台的脚本
8 回答
区别于python中的命令行和CGI
3 回答
区别关系
8 回答
区别是什么APIClient.enforce\ csrf\检查以及APIClient.handler.enforce\ csrf\ u检查
9 回答
区块.draw()未在python空闲模式下工作
5 回答
区块链API调用输出对象名称而不是内容
3 回答
区块链nonce值随负载变化
6 回答
区块链Python语法错误(Snakecoin)
9 回答
区块链不连接到服务器和矿工
4 回答
区块链信息钱包支票支付员
2 回答
区块链和区块链密码错误
10 回答
区块链尝试向Transaction字典添加键/值以创建区块链
4 回答
区域:IOError:[Errno 22]无效模式('w')或filenam
3 回答