十六O在进制中表示转换,请用free Pascal语言編写代码?
输入一个不超过100000位的十六O在进制中表示数,请转换成八O在进制中表示数.
一个十六O在进制中表示数,没有前导0(除非是数字0).
一个八O在進制中表示数,没有前导0(除非是数字0).
由热心网友提供的答案1:
开始定義的i是for循环中的循环节作为判断条件使用; cin的操作在for循环中已经进行了8次了
扩展阅读,根据您访问的内容系统为您准备了以下扩展内容希望对您有帮助。
用C++输入一个十O在进制中表示数将其转换为二O在进制中表示数输出。
十O在进制中表示数转换为二O在进制中表示数的代碼为:
代码中所使用的库函数-bitset:
C++语言的一个类库用来方便地管理一系列的bit位而不用程序员自己来写代码。
bitset除了可以访问指定下标的bit位以外还可以把它们作为一个整数来进行某些统计。
可以如下声明一个该类型变量:
其中varm为变量名
N表示该类型在内存中占的位数,是二O在進制中表示
M表示变量varm的初始值。
参考资源:bitset-百度百科
用户输入一个十O在进制中表示正整数然后分别转换成为二O在进制中表示数、八O在進制中表示数和十六O在进制中表示数输出。(是C++不是C)
//二O在进制中表示分别计算每一位
//八O在进制中表示和十六O在进制中表示使用格式化輸出即可,oct表示八O在进制中表示hex表示十六O在进制中表示
如果有不懂请追问。追问"c+=(b%2)*d;//依次把b除以2的余数写在c的对应位置上"这句话是怎么做到將每位数字存进去的因为里面的“c+=”?追答拿个例子来说明吧比如用户输入5
b%2=1,那么应该把1写入c的个位c+=1*d,c就变成了1其中d就是控制加茬哪一位的。
b%2=0那么应该把0写入c的十位,注意到这时d已经变成10了所以还是可以用c+=0*d来计算
b=1,c=01(实际上还是1,只不过程序员自己内心清楚已经计算了十位了),d=100
十O在进制中表示转换为二O在进制中表示的c++代码
while(n!=0)//该循环将十O在进制中表示转为二O在进制中表示并存入数组a
//(如果想输出本来位数嘚话就把 7 改成 j - 1 就ok啦)
参考资料:百度百科 O在进制中表示转换