强奸易躲,意淫难防,今天本人就狠狠的被Ascii码狠狠的意淫了一回,不过以后可能也躲不过其中的数学关系,不过我相信有了这个网站,我查码的速度也有了一个好的参照。总感觉最近老是被一些古怪的问题困扰,并且都在实际工作学习中遇到,有的时候只是一个小小的问题,以前根深蒂固的观念没有改变是根本原因。
下面我用C++和Java中的Ascii的一些对比来进行当Int 转 Char时候需要注意的问题,顺便将我所了解的各种Web编码规范进行列举和分析,希望对大家能够有帮助。
C++ CODE
#include<iostream>
using namespace std;
int main(){
for(int i = 0 ; i < 300 ; i++){
char c = i;
cout<<i<<"-"<<c<<" ";
if(i % 10 == 0 ){
if( i != 0){
cout<<endl;
}
}
}
cout<<endl;
int eig = 8;
int eigs ='0'+ 8;
cout<<" 普通int转char换::"<<(char)eig<<endl;
cout<<"非普通int转char换::"<<(char)eigs<<endl;
char eigC = '8';
char zeroC = '0';
cout<<" 普通char转int换::"<<(int)eigC<<endl;
cout<<" 普通char转int换::"<<(int)zeroC<<endl;
system("pause");
return 0;
}
Java CODE:
package com.j2me.canvas;
import java.util.Random;
public class IntToChar {
public static void main(String[] args) {
Random ran = new Random();
for(int i = 0 ; i < 200 ; i++){
char c = (char)i;
System.out.print(i + "-" + c + " ");
if(i % 10 == 0 ){
if( i != 0){
System.out.println();
}
}
}
System.out.println();
int number = ran.nextInt(10); //普通int转char换::
char x = (char)number;
System.out.println(x);//出现乱码
int number2 = '0' +ran.nextInt(10);//非普通int转char换::
char x2 = (char)number2;
System.out.println(x2);//不出现乱码
char eig = '0';
System.out.println((int)eig);
}
}
导致这样的原因是Ascii编码的规范是7BIT 而int为32位,在int + char 时候,int 享有更高的优先级,即char自动对照Ascii转为int数值,所以出现了'0'+8这样的例子和场景。
下面我们来看看常用的编码和他们的特点:
未写完的明天添上!!!!!
C++与Java中的Ascii浅谈
最新推荐文章于 2022-08-03 11:57:33 发布