最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言每日練習(xí)之進制轉(zhuǎn)換

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

分析

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

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

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

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

當(dāng)然,不建議這樣做。

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

代碼實現(xiàn)

#include <stdio.h>
/**
 * @brief 八進制轉(zhuǎn)十進制
 * @param octal_number 八進制數(shù)
 * @return 十進制數(shù)
 */
int Octal_to_Decimal(int octal_number)
{
    int dec_number = 0;       //十進制返回值
    int negative = 0;         //負數(shù)標(biāo)志
    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("對應(yīng)的十進制為%d\n", Octal_to_Decimal(octal_num));

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

運行結(jié)果

在這里插入圖片描述

網(wǎng)上參考

//  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ù)轉(zhuǎn)化為十進制為\n%d\n",n);
    return 0;
}

總結(jié)

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

相關(guān)文章

  • 淺談C語言之字符串處理函數(shù)

    淺談C語言之字符串處理函數(shù)

    下面小編就為大家?guī)硪黄獪\談C語言之字符串處理函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • C語言計算1/1+1/2+1/3+…+1/n的問題

    C語言計算1/1+1/2+1/3+…+1/n的問題

    這篇文章主要介紹了C語言計算1/1+1/2+1/3+…+1/n的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    這篇文章主要介紹了Cocos2d-x 3.x入門教程(二):Node節(jié)點類,本文對Node節(jié)點類做了一個簡明講解及Node類提供的函數(shù)做了說明,需要的朋友可以參考下
    2014-11-11
  • C++語言編寫寫日志類

    C++語言編寫寫日志類

    這篇文章主要介紹了C++語言編寫寫日志類的相關(guān)資料,支持寫日志級別設(shè)置、支持多線程、支持可變形參表寫日志,需要的朋友可以參考下
    2015-12-12
  • C++11新特性之隨機數(shù)庫(Random?Number?Library)詳解

    C++11新特性之隨機數(shù)庫(Random?Number?Library)詳解

    相對于C++11之前的隨機數(shù)生成器來說,C++11的隨機數(shù)生成器是復(fù)雜了很多,下面這篇文章主要給大家介紹了關(guān)于C++11新特性之隨機數(shù)庫(Random?Number?Library)的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • VC實現(xiàn)讓關(guān)閉按鈕成灰色不可用的方法

    VC實現(xiàn)讓關(guān)閉按鈕成灰色不可用的方法

    這篇文章主要介紹了VC實現(xiàn)讓關(guān)閉按鈕成灰色不可用的方法,比較實用的一個特殊功能,需要的朋友可以參考下
    2014-08-08
  • opencv3/C++ FLANN特征匹配方式

    opencv3/C++ FLANN特征匹配方式

    今天小編就為大家分享一篇opencv3/C++ FLANN特征匹配方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C++中inet_pton、inet_ntop函數(shù)的用法

    C++中inet_pton、inet_ntop函數(shù)的用法

    這篇文章主要介紹了C++中inet_pton、inet_ntop函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++淺析序列數(shù)據(jù)封裝與優(yōu)化實現(xiàn)方法

    C++淺析序列數(shù)據(jù)封裝與優(yōu)化實現(xiàn)方法

    封裝是面向?qū)ο缶幊讨械陌褦?shù)據(jù)和操作數(shù)據(jù)的函數(shù)綁定在一起的一個概念,這樣能避免受到外界的干擾和誤用,從而確保了安全,數(shù)據(jù)封裝是一種把數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)捆綁在一起的機制,數(shù)據(jù)抽象是一種僅向用戶暴露接口而把具體的實現(xiàn)細節(jié)隱藏起來的機制
    2022-12-12
  • C#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡單方法

    C#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡單方法

    下面小編就為大家?guī)硪黄狢#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論

陈巴尔虎旗| 桑植县| 余江县| 迁西县| 甘德县| 晋江市| 河津市| 安龙县| 柳林县| 山丹县| 赤水市| 嘉兴市| 仲巴县| 拜泉县| 阳朔县| 广水市| 来安县| 武功县| 稻城县| 托里县| 乌鲁木齐县| 上思县| 多伦县| 登封市| 桦川县| 七台河市| 泗阳县| 连云港市| 江阴市| 宁城县| 阿克苏市| 绥宁县| 台南县| 山阴县| 博兴县| 阜南县| 乌海市| 集安市| 吉水县| 安塞县| 平塘县|