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

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

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

分析

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

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

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

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

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

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

代碼實(shí)現(xiàn)

#include <stdio.h>
/**
 * @brief 八進(jìn)制轉(zhuǎn)十進(jìn)制
 * @param octal_number 八進(jìn)制數(shù)
 * @return 十進(jìn)制數(shù)
 */
int Octal_to_Decimal(int octal_number)
{
    int dec_number = 0;       //十進(jìn)制返回值
    int negative = 0;         //負(fù)數(shù)標(biāo)志
    if(octal_number < 0)      //負(fù)數(shù)判斷
    {
        octal_number = -1 * octal_number;
        negative = 1;
    }
    while(octal_number != 0)
    {
        //高位之和乘8再加上低3位,低3位即八進(jìn)制最低位
        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("輸入一個(gè)八進(jìn)制數(shù)\n");
    scanf("%o", &octal_num);
    printf("對(duì)應(yīng)的十進(jìn)制為%d\n", Octal_to_Decimal(octal_num));

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

運(yùn)行結(jié)果

在這里插入圖片描述

網(wǎng)上參考

//  Created by www.runoob.com on 15/11/9.
//  Copyright © 2015年 菜鳥(niǎo)教程. 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("請(qǐng)輸入一個(gè)8進(jìn)制數(shù):\n");
    gets(s);
    while(s[i]!='\0'){
        n=n*8+s[i]-'0';
        i++;
    }
    printf("剛輸入的8進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制為\n%d\n",n);
    return 0;
}

總結(jié)

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

相關(guān)文章

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

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

    下面小編就為大家?guī)?lái)一篇淺談C語(yǔ)言之字符串處理函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題

    C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題

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

    Cocos2d-x 3.x入門(mén)教程(二):Node節(jié)點(diǎn)類(lèi)

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

    C++語(yǔ)言編寫(xiě)寫(xiě)日志類(lèi)

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

南乐县| 天全县| 离岛区| 嘉兴市| 丰台区| 东源县| 镇巴县| 时尚| 始兴县| 永胜县| 镇赉县| 五河县| 泸西县| 夏河县| 焉耆| 奎屯市| 长乐市| 固阳县| 吉木乃县| 饶河县| 泸水县| 盘锦市| 吉安县| 新疆| 岱山县| 玉树县| 渑池县| 余姚市| 彩票| 赫章县| 阿城市| 措美县| 鄂尔多斯市| 观塘区| 吉木乃县| 长丰县| 山西省| 类乌齐县| 儋州市| 油尖旺区| 黄陵县|