ascii演算法
㈠ 已知D的ASCII碼值為44H,那麼F的ASCII碼值為十進制數怎麼算
十進制是70。
大寫字母A的ASCII碼值為65,
B、C、D、E、F,
65+5
=702 4*16^1+4*16^0
=68 68+2
=703 44H+2
=46H 4*16^1+6*16^0
=70
(1)ascii演算法擴展閱讀
ASCII碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字元。標准ASCII 碼也叫基礎ASCII碼,使用7 位二進制數(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元 。其中:
0~31及127(共33個)是控制字元或通信專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程序,而對文本顯示有不同的影響 。
㈡ ASCII數字對應表
如圖。
所謂的ASCII和16進制都只是概念上的東西,在計算機中通通是二進制,轉換應該是輸出的轉換,同樣是一個數,在計算機內存中表示是一樣的,只是輸出不一樣ASCII是針對字元的編碼,幾乎是鍵盤上的字元的編碼。
數學的計算方法:
主條目:進制轉換
十進制轉十六進制
采余數定理分解,例如將487710轉成十六進制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
這樣就計到487710=130D16
㈢ 基於ASCII碼進行文本的編碼和解碼
#include<iostream>
#include<string>
usingnamespacestd;
classpassword{
public:
voidcode();//編碼
voiddecode();//解碼
voidchoose();//用戶選擇
voiddog();//輸入編碼字元串及編碼文本
voidcat();//輸入要解碼的文本及編碼字元串
password(){//默認構造函數,定義對像時調用,用於將密碼表存儲二維數組中
intm;
for(inti=0;i<95;i++)//32-126有95個字元
{
for(intj=0;j<95;j++)
{
m=i+j;
if(m>95)//若m>95,加上32時超過編碼范圍(32-126)
m-=95;//減去95正好回到編碼范圍
key[i][j]=m+32;//加32變為(32-126)中的字元
}
}
}
private:
charkey[95][95];
strings1,s2,s3;
intj,k;
};
voidpassword::dog(){//輸入編碼字元串及編碼文本
cout<<"請輸入編碼字元串:"<<endl;
fflush(stdin);
getline(cin,s1);
cout<<"請輸入進行編碼的文本:"<<endl;
fflush(stdin);
getline(cin,s2);
}
voidpassword::cat(){//輸入要解碼的文本
cout<<"請輸入編碼字元串:"<<endl;
fflush(stdin);
getline(cin,s1);
cout<<"請輸入解碼文本:"<<endl;
fflush(stdin);
getline(cin,s3);
}
voidpassword::code(){//編碼
dog();
while(s1.length()<s2.length())
s1+=s1;//若編碼字元串長度小於編碼文本,將s1(編碼字元串)連接上自己,直到s1的長度大於等於s2(編碼文本)
s1=s1.substr(0,s2.length());//截取與s2長度相等的字元串
cout<<"編碼後的字元串為:"<<endl;
for(inti=0;i<s2.length();i++)
{
j=s1[i]-32;
k=s2[i]-32;//這兩句求編碼後的文本中,每個字元所對應的二維數組的坐標
cout<<key[j][k];
}
cout<<endl;
}
voidpassword::decode(){//解碼,相當於知道一維坐標
cat();
while(s1.length()<s3.length())
s1+=s1;
s1=s1.substr(0,s3.length());
cout<<"解碼後的字元串為:"<<endl;
for(inti=0;i<s3.length();i++)
{
k=0;
j=s1[i]-32;//確定要遍歷的行號
while(s3[i]!=key[j][k])//遍歷密碼表每一行,找到行中與要解碼的字元相等的字元對應的列號
k++;
cout<<static_cast<char>(k+32);//列號加上32即為解碼出的字元
}
cout<<endl;
}
voidpassword::choose(){
while(1)
{
inti;
cout<<"請輸入要進行的操作:"<<endl;
cout<<"1---編碼"<<endl;
cout<<"2---解碼"<<endl;
cout<<"3---退出"<<endl;
fflush(stdin);
cin>>i;
switch(i)
{
case1:
{
code();
break;
}
case2:
{
decode();
break;
}
case3:
exit(1);
default:
cout<<"選擇錯誤!!!"<<endl;
}
}
}
intmain(){
passwordp;
p.choose();
return0;
}
㈣ 十六進制轉ascii碼演算法
西門子S7-200PLC早已經停產了,代替他的是Smart,當然S7-1200在一些場合上也是會用於代替200的產品,但是以往的產品還是有很多場合在使用,而且市場上有很多類似的高仿製品在使用著,並且,很多指令方面的應用,也是大同小異,多了解些內容,也有助於後面自己對不同PLC的學習。
今天這里分享的指令是16進制碼和ASCII碼之間的轉換,16進制轉換為ASCII碼,VB103中如果是FF ,VB2=3 那麼從VB130開始的3個位元組的ASCII碼值為F F 0 ,如果VB2=4 ,那麼VB103的開始4個位元組的ASCII就是F F 0 0,如下圖:
第二個分享的是BCD碼與整數之間的轉換,以16進制的格式進行寫入,比如VW0賦值為256,對應的16進制位16#0100,這時候輸出VW4=100,VW8裡面的值是多少,VW20裡面的值就是多少,但是輸出格式是16進制。當然,如果將一個兩位數用數碼管顯示出來,就必須先將轉換成BCD碼,然後再用段碼指令進行輸出。
以上的主要還是對指令的熟悉,如果手邊有PLC的話,是可以在線監控,這樣就更好的理解了,也希望大家有好的學習方法與我進行交流,謝謝!
㈤ 數字加密成ASCII碼,求大概演算法
有很多種方法,最簡單的是字典法,把你的數字按照字典對應到你的字元,比如0-^ 1-@ 2-t 3-y 4-T 5-u 6-o 7-O 8-p 9-s 這樣 123就可以替換為@ty當然,這種方法過於簡單,規律極易暴露,不過可以多備幾套字典,比如序號 0123456789A! !wWdaS^$):w% 'Jh%^0_1@#....以序號區分,這樣就可以將12341轉換為A!wWdaw或者w%Jh%^J,應該說用起來還不錯
㈥ 關於ascii碼的計算。怎麼算的
這個是16進制的ascii碼,如果給出已知條件H的ascii碼為48因為J與H差兩位,所以J的ascii碼為48+2=40A。
它是最通用的信息交換標准,並等同於國際標准ISO/IEC 646。ASCII第一次以規范標準的類型發表是在1967年,最後一次更新則是在1986年,到目前為止共定義了128個字元 。
(6)ascii演算法擴展閱讀
ASCII碼使用指定的7 位或8 位二進制數組合來表示128或256種可能的字元。標准ASCII 碼也叫基礎ASCII碼。
7位二進制數(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元。
㈦ 什麼是補碼什麼是ASCII碼能舉例說明嗎
ascii碼就是在計算機里用一堆0和1表示現實生活中的一個符號,比如 A ,比如字元 0 等,規定的是什麼樣地 0和1 的排列表示什麼符號,這堆 0和1的組合如果看做二進制數,就稱其為某個字元的 ascii 值,比如字元0的ascii值是 01100000。
補碼你可以認為是數在計算機中的一種存儲形式,比如 -2,表示成二進制是 10000010 ,但是在計算機里並不是存儲這個序列,而是存儲的 -2 的補碼,規則是保持符號位不變,其餘位取反+1,即 11111110 。
㈧ 求ASCII碼基本的演算法。
」01000001B「表示的是二進制數01000001,最後那個B不表示數值。
0001+0110=0111 這是最簡單的二進制加法,逢二進一,自己動筆寫寫試試。
㈨ ASCII碼的演算法
'A'在ASCII碼中的十進制是65,因此對應的2進制是0100 0001'E'在ASCII碼中是十進制是69.,因此就是比'A'大4,對應是2進制就是0100 0101
㈩ c語言的ASCII怎麼演算法
c里頭,char和int同屬於「整型」,他們都可以用整數來表示。char的整數表示就是ascii里頭對應的那個整數,所以,char也可以進行加減運算。
ascii表中,小寫字母在大寫字母後面,而且中間間隔有其他符號,'a'-'A'表示的就是對應兩個大寫字母和小寫字母之間的差值。那麼c2是大寫的A也就不難理解了。