亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言每日練習之進制轉換

 更新時間:2021年11月11日 15:02:28   作者:小輝_Super  
這篇文章主要介紹了C語言進制轉換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

分析

我一開始的想法是通過輸入整數(shù)形式八進制來轉換成十進制輸出,后來發(fā)現(xiàn)用字符數(shù)組輸入更方便。我這里就講講我用整型數(shù)據(jù)輸入的轉換思路:

我們都知道二進制由0和1組成,3位二進制組成在一起,就可以表示0-7這八個數(shù),所以八進制實際上就是3位二進制的組合(同理十六進制是4位二進制的組合),C語言的位運算操作的是二進制,算術運算針對的是十進制,所以,我們可以通過位運算求出八進制的每一位數(shù)(3位二進制為1位),然后通過算術運算符+,將他們加起來。和十進制運算不同的地方在于一個兩位的十進制數(shù)的十位數(shù)要乘10加上個位數(shù)即一個兩位十進制數(shù),而八進制的兩位數(shù),高位只需要乘以8。

這題我們也可以偷個懶,讓C編譯器幫我們算,只需要三行即可實現(xiàn)轉換:

int octal_num = 0;
scanf("%o", &octal_num);
printf("十進制:%d\n", octal_num);

當然,不建議這樣做。

至于用字符數(shù)組形式輸入,那就更簡單了,不用通過位運算取出八進制數(shù)每位數(shù),具體實現(xiàn)見網上參考部分。

代碼實現(xiàn)

#include <stdio.h>
/**
 * @brief 八進制轉十進制
 * @param octal_number 八進制數(shù)
 * @return 十進制數(shù)
 */
int Octal_to_Decimal(int octal_number)
{
    int dec_number = 0;       //十進制返回值
    int negative = 0;         //負數(shù)標志
    if(octal_number < 0)      //負數(shù)判斷
    {
        octal_number = -1 * octal_number;
        negative = 1;
    }
    while(octal_number != 0)
    {
        //高位之和乘8再加上低3位,低3位即八進制最低位
        dec_number = dec_number * 8 + (octal_number & 0x7) ;
        octal_number >>= 3;    //右移3位
    }
    if(negative)
        return -1 * dec_number;
    return dec_number;
}
#define FIRST  //使用第一種方法,注釋掉此行則使用第二種方法
int main()
{
    int octal_num = 0;
#ifdef FIRST
    printf("輸入一個八進制數(shù)\n");
    scanf("%o", &octal_num);
    printf("對應的十進制為%d\n", Octal_to_Decimal(octal_num));

#else
    /* 偷懶法 */
    puts("八進制:");
    scanf("%o", &octal_num);
    printf("十進制:%d\n", octal_num);
#endif
    return 0;
}

運行結果

在這里插入圖片描述

網上參考

//  Created by www.runoob.com on 15/11/9.
//  Copyright © 2015年 菜鳥教程. All rights reserved.
//   https://www.runoob.com/cprogramming/c-exercise-example82.html  
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n=0,i=0;
    char s[20];
    printf("請輸入一個8進制數(shù):\n");
    gets(s);
    while(s[i]!='\0'){
        n=n*8+s[i]-'0';
        i++;
    }
    printf("剛輸入的8進制數(shù)轉化為十進制為\n%d\n",n);
    return 0;
}

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C++如何用數(shù)組模擬鏈表

    C++如何用數(shù)組模擬鏈表

    大家好,本篇文章主要講的是C++如何用數(shù)組模擬鏈表,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • STL區(qū)間成員函數(shù)及區(qū)間算法總結

    STL區(qū)間成員函數(shù)及區(qū)間算法總結

    這篇文章主要匯總介紹了STL區(qū)間成員函數(shù)及區(qū)間算法,有需要的小伙伴可以參考下。
    2015-07-07
  • C++類與對象的詳細說明

    C++類與對象的詳細說明

    這篇文章主要為大家詳細介紹了C++的類與對象,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++實現(xiàn)簡易文本編輯器

    C++實現(xiàn)簡易文本編輯器

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡易文本編輯器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • c++ sqlite3如何利用事務(BEGIN;COMMIT;)批量操作

    c++ sqlite3如何利用事務(BEGIN;COMMIT;)批量操作

    這篇文章主要介紹了c++ sqlite3如何利用事務(BEGIN;COMMIT;)批量操作,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C 語言指針變量詳細介紹

    C 語言指針變量詳細介紹

    本文主要介紹C 語言指針變量,這里詳細介紹了 C語言中指針變量的用法,并附代碼示例及指針變量指向關系圖幫助大家理解指針,有學習C語言指針的朋友可以參考下
    2016-08-08
  • VS2019如何添加頭文件路徑的方法步驟

    VS2019如何添加頭文件路徑的方法步驟

    這篇文章主要介紹了VS2019如何添加頭文件路徑的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • C語言詳解格式控制符scanf與printf的輸入輸出

    C語言詳解格式控制符scanf與printf的輸入輸出

    這篇文章主要介紹了C語言格式控制符中輸入scanf()和輸出printf()的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2022-04-04
  • 淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    這篇文章主要介紹了strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C語言手把手教你實現(xiàn)貪吃蛇AI(上)

    C語言手把手教你實現(xiàn)貪吃蛇AI(上)

    這篇文章主要介紹了C語言手把手教你實現(xiàn)貪吃蛇AI,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論