某演算法競賽題——把一個二進位制的串轉換為十進位制整數
下面是某演算法競賽題題目,主要是考察參賽者對C語言指標概念的理解:
//下列程式碼把一個二進位制的串轉換為整數。請填寫缺少的語句;
char* p = "1010110001100";
int n = 0;
for(int i=0;i<strlen(p); i++)
{
n = __________________;
}
printf("%d\n", n);
我寫了一個演算法如下,其思想是:因為有for迴圈,看來是讓我們遍歷*p指向的各元素;對於二進位制轉十進位制,利用移位操作通常是個好方法,我試了其他一些方法,好像都不可以,如果大家有妙解,請評論給我說!
剩下的就是一些細節問題了,但也要注意,我就是在一些細節問題上耗了不少時間。
#include<stdio.h> #include <string.h> int main() { char *p = "1010110001100"; int n = 0; for (int i = 0; i < strlen(p); i++) { n = n + ((p[i] - 48)<< (strlen(p) - i - 1)); } printf("%d\n", n); scanf("%d", &n); return 0; } /*==========執行結果============ 5516 */ 其中,“+、 -”的優先順序要高於移位操作符“<<、>>”,所以加上需要加上必要的括號。
相關文章
- JavaScript 二進位制數字轉換為十進位制JavaScript
- JavaScript十進位制轉換為二進位制JavaScript
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 十六進位制轉換為十進位制
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Oracle二進位制與十進位制轉換Oracle
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制轉十進位制快速轉換方法
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- javascript十進位制數字和二進位制相互轉換JavaScript
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- Qt進位制轉換(十進位制轉十六進位制)QT
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- 十進位制與二進位制互相轉換指南
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- Python 十進位制轉換為二進位制 高位補零Python
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 十進位制轉換為十六進位制和二進位制程式碼例項
- 十六進位制數轉十進位制
- js二進位制和十進位制轉換程式碼JS
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- lua之m進位制轉換為n進位制-任意進位制轉換演算法演算法
- 二進位制轉十進位制快速方法
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 二進位制、十進位制與十六進位制相互轉化
- 十六進位制轉換為八進位制
- 十進位制轉二進位制推導(草稿)