中國電子學會青少年軟體編程等級考試2級(C/C++)專題一:數制和進位轉換

2021-01-14 機房日子青少年編程

   全國青少年軟體編程等級考試是由中國電子學會發起的面向青少年機器人軟體編程能力水平的社會化評價項目。

   考試標準汲取國內外高校的人才選拔標準,支持創客教育的實踐與工程化理念,全面考察青少年在軟體編程的知識能力和實踐能力,是青少年邁向人工智慧應用領域的基礎準備。


計算機中數制的基本概念

 數制的三個基本概念

  數制:記數的方法,指用一組固定的符號和統一的規則來表示數值的方法,如在計數的過程中採用進位的方法則稱為進位計數制。進位計數制有數位、基數、位權3個要素。

  數位:

  指數字符號在一個數中所處的位置。

 基數:

  指在某種進位計數制中數位上所能使用的數字符號的個數,例如,十進位數的基數是10,八進位的基數是8,二進位的基數是2。

 不同的數制,可以給數字加上括號,使用下標來表示該數字的數制(當沒有下標時默認為十進位)。

  C/C++中整數有三種表示形式:

   1)十進位形式。如99、-1。

   2)八進位形式。以數字0打頭,由0-7構成,如012,表示八進位整數12,即12(8)。

   3)十六進位形式。以0x打頭,如0x12A,表示十六進位整數12A,即12A(16)。

在數制中,還有一個規則,這就是,N進位必須是逢N進一。

計算機中常用的數制是十進位。二進位與十進位類似,但是其基數是2,只有兩個數字0和1,每超過2時就需要進位。

1.

十進位數的特點是逢十進一。如下圖所示:

2.

二進位數的特點是逢二進一。如下圖所示:

 

3.

八進位數的特點是逢八進一。如下圖所示:

 

4.     

十六進位數的特點是逢十六進一。如下圖所示:


 

二進位與十進位之間的轉換

1.   十進位轉二進位

方法為:十進位數除2取餘法,即十進位數除2,餘數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

(具體用法如下圖)


2.    2

二進位轉十進位

方法為:把二進位數按權展開、相加即得十進位數。

(具體用法如下圖)


二進位與十六進位之間的轉換

1.   二進位轉十六進位

方法為:與二進位轉八進位方法近似,八進位是取三合一,十六進位是取四合一。(注意事項,4位二進位轉成十六進位是從右到左開始轉換,不足時補0)。

(具體用法如下圖)


2.    2

十六進位轉二進位

方法為:十六進位數通過除2取餘法,得到二進位數,對每個十六進位為4個二進位,不足時在最左邊補零。

(具體用法如下圖)


 

 

2進位轉10進位程序

#include<iostream>

using namespace std;

//2進位轉10進位,形參為長整型

long long btod(long long s)

{

       longlong m=1,n=0;

       while(s)

       {

                n=n+m*(s%10);

                m=m*2;

                s/=10;

       }

       return n;

}

//2進位轉10進位,形參為字符串

long long btod2(string s)

{

       long long m=1,n=0;

       int l=s.size();

       for(int i=0;i<l;i++)

       {

                n=n+m*(s[l-1-i]-'0');

                m=m*2;

       }

       return n;

}

//測試程序

int main()

{

       long long s,m=1,n=0;

       string s2;

       cin>>s;

       cin>>s2;

       cout<<btod(s);

       cout<<btod2(s2);

       return 0;

}

 

//p(p<=16)進位數s轉換十進位數

#include<iostream>

using namespace std;

int main()

{

  int ans=0,p;

  string s;

  cin>>p>>s;

  for (int i=0;i<s.size();i++)

   {

       ans=ans*p;

       if (s[i]=='A'||s[i]=='B'||s[i]=='C'||s[i]=='D'||s[i]=='E'||s[i]=='F')

       {

           ans=ans+(s[i]-'A'+10);

       }

       else

       {

           ans=ans+(s[i]-'0');

       }

   }

  cout<<p<<"進位數"<<s<<"的10進位數為:"<<ans;

  return 0;

}

 

 

//十進位數n轉換成p(p<=16)進位數

#include<iostream>

using namespace std;

int main()

{

   int y=0,k,n,p;

   string s;

   cin>>n>>p;

   cout<<"10進位數"<<n<<"的"<<p<<"進位數為:";

   while (n!=0)

   {  

       k=n%p;

       if(k>9)

            s+=char('A'+k-10);

       else

            s+=char(k+'0');

        n=n/p;

    }

   for (int i=s.size()-1;i>=0;i--)

             cout<<s[i];

   return 0;

}


編程技術和學習等問題請聯繫下方老師諮詢


相關焦點

  • 2020首期青少年軟體編程等級考試開啟,超2萬考生赴考
    5月31日,青少年軟體編程等級考試2020年首場考試正式於線上開考,共計超過2萬人報名參加考試。作為首個全國級面向青少年軟體編程能力水平的社會化評價項目,中國電子學會青少年軟體編程等級考試自啟動以來一年舉辦四次,截至目前已超過6萬名青少年參加全國青少年軟體編程等級考試,成為迄今為止具有大量實踐積累並且規模最大的編程等級考試。因受疫情影響,2020年青少年軟體編程等級考試將3月與5月的考試合併進行,另外兩場考試將分別於9月和12月舉行。
  • 關於延期舉辦中國電子學會2020年首期青少年等級考試的通知
    以下為正文: 各考試服務中心、考試服務網點、諮詢服務站: 為貫徹落實黨中央、國務院重要決策部署,切實做好新型冠狀病毒感染的肺炎疫情防控工作,按照有關工作要求,我學會決定延期舉辦原定於2020年3月的青少年機器人技術等級考試、青少年軟體編程等級考試、青少年三維創意設計等級考試和青少年電子信息等級考試。
  • 數制轉換-電子發燒友網
    數制轉換 佚名 發表於 2009-10-13 16:23:17 數制轉換  計算機中常用幾種不同的進位數制,包括二(八、十六)進位和十進位。
  • 2019福建教師招聘考試:信息技術 進位轉換
    2019福建教師招聘考試:信息技術 進位轉換 福建教師招聘網 :提供2019福建教師考試備考資料,包括福建教招教育綜合基礎知識、學科專業知識及重點、教師招聘面試技巧、 備考指導等。
  • 跟我學java編程—不得不說的二進位和十六進位
    計算機能夠識別的數制是二進位數,二進位數是用0和1兩個數字來表示的數,計算機的指令集也是採用二進位表示,機器語言就是用二進位數編寫程序。可以藉助十進位數來理解二進位數。在十進位中,每一位有0、1、2、3、4、5、6、7、8、9十個數碼,因此基數為10,超過9就必須用多位數來表示,並遵循逢十進一的原則。
  • 教師招聘考試信息技術學科—進位轉換知識點匯總
    為了幫助考生梳理知識點,中公教師特意為大家準備了信息技術教師招聘考試中進位轉換領域部分的常考點,希望這部分知識點匯總能為學員備考提供參考。一、進位(一)基本概念數制即表示數值的方法,它是指用一組固定的數字和一套統一的規則來表示數目的方法。在計算機數制中,需要掌握數碼、基數和位權的概念。
  • 二級c語言考試改革_計算機二級考試c語言考試題型 - CSDN
    網站:http://chaxun.neea.edu.cn三、計算機二級考試的簡介以及C語言的試題分析1、計算機二級考試是全國計算機等級考試(National Computer Rank Examination,簡稱NCRE)四個等級中的一個等級,考核計算機基礎知識和使用一種高級計算機語言編寫程序以及上機調試的基本技能。計算機二級考試採用全國統一命題、統一考試的形式。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    一、什麼是進位計數制數制也稱計數制,是指用一組固定的符號和統一的規則來表示數值的方法。按進位的原則進行計數的方法,稱為進位計數制。比如,在十進位計數制中,是按照「逢十進一」的原則進行計數的。當然,人們輸入計算機的十進位被轉換成二進位進行計算,計算後的結果又由二進位轉換成十進位,這都由作業系統自動完成,並不需要人們手工去做,學習彙編語言,就必須了解二進位(還有八進位/十六進位)。 數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。人們通常採用的數制有十進位、二進位、八進位和十六進位。
  • PSTK項目:青少年編程中可視化編程,起源竟是一隻海龜
    在國家大政策環境和未來發展大趨勢下,網際網路技術、人工智慧等成為風口所向,自然準大學生們在選擇專業上會向其靠攏,而不願孩子們輸在起跑線上的父母,青少年編程便成了香饃饃。什麼是青少年編程青少年編程顧名思義有別成人職業化java、C++、PHP等編程,而是通過編程遊戲啟蒙、可視化圖形編程等課程,培養學生的計算思維和創新解難能力。
  • 計算機等級考試詳解:十進位數92轉換為二進位數!
    計算機等級考試詳解:十進位數92轉換為二進位數!本經驗由宗龍龍原創,全文共1000多字,閱讀需要14分鐘,如果文中存在錯誤,還請大家多多指點,我會積極改進的!14、十進位數92轉換為二進位數是()。A)01011100B)01101100C)10101011D)01011000(圖片來源於網絡)這一題主要考察的是十進位與二進位的相互轉換問題。如果你不知道如何轉換,沒有關係,我們只需要打開pc電腦端的計算器便可以輕鬆的進行十進位與二進位之間的轉換。
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    1、計算機的數制介紹數制:計數的方法,指用一組固定的符號和統一的規則來表示數值的方法
  • 二進位,八進位,十進位,十六進位之間的轉換
    什麼是二進位二進位是計算技術中廣泛採用的一種數制。二進位數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進位系統,數據在計算機中主要是以補碼的形式存儲的。
  • 單片機C語言開發離不開它——秒懂二進位和十六進位
    單片機C語言開發離不開它--秒懂二進位和十六進位作為單片機愛好者,入門學習單片機編程一定要學會進位的基本概念,常見的有(二進位、八進位、十進位、十六進位),今天於曉超帶大家入門一下單片機C語言編程的二進位和十六進位(技術文章閱讀量慘澹,希望大家能夠點讚收藏加轉發,感謝)。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    十六進位:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F    ②、基數:數碼的個數。比如2進位數的基數為2。N進位數的基數為N。    ③、*位權:數制中每一固定位置對應的單位值稱為位權。
  • 介紹一種二進位轉換成十進位的方法
    2倍或二分之一嗎?推理過程:分別把整數部分和小數部分轉換成十進位來進行比較,按「乘權求和」的規則進行轉換整數部分:(1)2=(1)10;(10)2=(2)10;(100)2=(4)10;(1000)2=(8)10;(10000)2=(16)10..
  • ASCII碼和16進位轉換表
    ASCII碼和16進位轉換表ASCII16進位
  • 如何進行進位轉換
    進位轉換   進位轉換是人們利用符號來計數的方法。進位轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。   基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。   位權是指,進位制中每一固定位置對應的單位值。
  • 二進位、十進位和十六進位
    一起走向智能工業革命時代,單片機DIY、基於c語言/彙編的編程。持續更新中······最新隆重推出「作品定製」,定製方法點擊菜單欄「DIY」即可進位,看似很簡單的東西,但很多同學還是不能徹底理解。二進位就是逢二進位,它的一個位只有兩個值:0 和 1,但它卻是實現計算機系統的最基本的理論基礎,計算機(包括單片機)晶片是基於成萬上億個的開關管組合而成的,他們每一個都只能有開和關兩種狀態,再難找出第三個狀態了(不要辯解半開半關這個狀態,它是不穩定態,是極力避免的),所以他們只能對應於二進位的 1 和 0 兩個值,而沒有 2、3、4......,理解二進位對於理解計算機的本質很有幫助。
  • 二進位、八進位、十進位、十六進位數的轉換方法
    一 、數制 計算機中採用的是二進位,因為二進位具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述,又常用八、十六進位作為二進位的縮寫。在計算機中:D7 D6 D5 D4 D3 D2 D1 D0 只有兩種0和18 4 2 1二 、數制轉換 不同進位計數制之間的轉換原則:不同進位計數制之間的轉換是根據兩個有理數如相等,則兩數的整數和分數部分一定分別相等的原則進行的。也就是說,若轉換前兩數相等,轉換後仍必須相等。
  • 編程小少年有個人工智慧大夢想
    8月5日,山西省青少年人工智慧教育論壇暨中國電子學會青少年機器人技術和軟體編程等級考試山西服務中心成立儀式在山西省實驗中學舉辦。眾多人工智慧領域的專家出席並作了專題報告,共同探討青少年人工智慧教育的現狀與發展。